Setting up a server and a client side using socket programming,implementing the crc algorithm after converting the data stream to binary form and implementing the retransmission,timeout features of TCP.
The Server is made to be a concurrent server without the use of multithreading.
Data is being sent along with the checksum generated by CRC. On being recieved server sends ACK or NACK based on error-free/error contaning message(from checksum) . On recieving ACK sends transmission complete message. On recieving Nack retransmits the message. On recieving none discards the message and waits for a ack/nack till (timeout) time.
Also implemented is an error generating algo for the bits in the data being sent from the client to the server and the ACK/NACK sent to the client from the server.
CRC-8 is being used in this current implementation. (x^8+x^2+x+1)
Running the program : Open 2 terminals gcc -o cl.c client in T1 gcc -o se.c server in T2
./server <port_no> in T2 ./client <host_name> <port_no> in T1
port_no : any valid port number eg: 2654,8888,..... host_name: valid host name/address