Objectives:
Groups of students will create a project based on all principles learned throughout the semester. This project will include analysis and creation of new TCP client assembly program. Groups will then showcase the functionality of their system and present the theoretical aspects of the implementation.
Requirements:
Learners will work in the groups (same groups as lab groups) to implement their system with following requirements.
Instructions:
TCP Client Requirements:
· The server assembly code will be provided on D2L. You can copy some of the syscalls and struct from TCP server to create the TCP client.
· The TCP Client must be fully written in X86-64 (64 bit) Assembly language
· It must be capable of connecting to provided TCP Server on localhost (server running locally)
· The Client must do the following:
Connect to Server using TCP stack syscalls (socket, bind, listen, accept, etc.) – no external libraries are allowed for this task
Upon connection, the client will request between 0x100 and 0x5FF random bytes from server – this will be done by sending appropriate request in HEX without prefix representation (e.g. 2FF)
Server will then return the specified number of random bytes back to client. These must be stored in an output file (see note about marking sections within file, below).
Client application will then sorts these data according to requirements given to each group by your instructor (each team will have different requirements for data sorting)
The sorted data will be appended to the end of the output file from previous steps. Each section in the file must have obviously marked beginning of the random data and sorted data sections.
Note: similar to what you would see in PEM formatted certificates “----- BEGINNING OF RANDOM DATA -----”
Other requirements:
· The code must include sufficient commenting technique
· The code must be designed around procedures and functions, following standard C Calling Conventions
· The program must utilize heap (for data manipulation) and stack for passing arguments and for local variables
give me the code