Client-server communication is carried out between a client program (called rcmd, for "remote command"), and a server (called rcmdd, for "remote command daemon"). The client sends the server a string message that contains an execution_count, time_delay (in seconds) and a Unix command. On receiving message the server executes the command, execution_count times, with the gap between two executions specified by time_delay . For each execution, the server returns the time of execution and the result, which is displayed by the client. In addition, the server prints information on the client request (current time, source IP, command, status) on server console - upon connection (status = "connected") or termination (status = "closed"). The client terminates after printing the time (at server) and the results of the executions of the command on the screen. The server continues serving client requests indefinitely.
Part I: Implement an iterative UDP based client-server architecture, in which the server can queue at least five requests. Assume that UDP checksum provides a sufficient level of reliability.
Part II: Implement a concurrent server architecture using TCP. Server need to be able to handle a minimum of five requests at a time.
Details
A client takes five arguments: the name of the server machine, the port number to which it should connect, the execution_count, the time_delay (in seconds) and the command (in that order). It translates the server name to its IP address using the gethostbyname system call, uses the IP address to fill in a sockaddr_in structure, and then opens a socket to the server using the socket and connect system calls. Next, the client sends the command as an ASCII string, using the write system call. Finally, it reads the reply, using the read call, and displays the result on the screen using the write system call.
The server takes one argument, which is the port number on which it listens for an incoming command. It fills in a sockaddr_in structure with the port number, with the incoming address field (s_addr) set to INADDR_ANY. The server should display its IP Address / servername for the client to connect to it. The server uses the socket, bind, and listen system calls to create a socket, bind the port number to it, and to listen for a request. On getting the request, server queues it and, then accepts it. It reads the message sent to it, executes the corresponding command using the Unix system call and writes the result to a temporary file. It then opens the file for reading, reads the result, and uses the write call to write the results back to the client.
TCP/IP does not provide message boundaries. So, the client does not know how long a result to read from the server. To get around this, the first 10 bytes of the server's message is the length of the reply, in ASCII. For example, if the length of the reply is 15 bytes, the first 10 bytes would be ASCII 5, ASCII 1 and eight 0s (use sprintf call to convert from binary to ASCII).
For Part II, the session termination is initiated by the server when it has executed the command execution_times. The session also may be terminated by entering rcend on the client terminal.
Dear Sir, We have a team of highly skilled Java programmers. We are capable of developing this application. Done 600+ projects on this site. Please award us this project. Thanks
can deliver in 4 hours
feel free to contact me
#########################################################################################################################################################################################################################
Hi I am Dinh. Here is some my client server project. Hope to work with you.
https://www.freelancer.com/jobs/Software-Architecture-C-Programming/Creating-web-server/
https://www.freelancer.com/projects/Software-Architecture-Java/very-simple-group-chat-application.html
Hello. More 20 years programming experience.
Do you accept perl?
Regards.
---------------------------------------------------------------------------------------------------------------------------------------------------
Looking for a reliable, professional, result oriented Bulk Email Service provider? Your search ends here. Hire us for a professional result driven bulk email campaigns. We have same technology infrastructure and tools used by big players like Aweber, MailChimp, icontact, BUT at a fraction of cost. We can deliver your small or large volume bulk emails reliably in your consumer’s inbox. Our delivery rates are 3X better than other providers and we are proud of this. We never use exhausted IPs. We provide you fresh IP addresses for every email campaign. For large volume campaigns, we can provide you dedicated server with up to 255 Class C rotating ips mounted on PowerMTA mail server. For small campaigns, we will give you atleast 1 fresh, unused dedicated IP address . All IPs will be configured with SPF, DKIM, SenderID for maximum deliverabilty. Moreover, we have a dedicated blacklist monitoring team that will be working day and night to remove blacklisted IP addresses. We believe in making relationships in business rather than money. Once you hire us, you will like to work with us again and again and that is a promise. For professional bulk emailing, send us a private message to initiate contact.
Best regards,
Bobby.
Hi,
I'm guessing this is for a university course? I've got loads of experience working with client server programming. Please see my Linked in profile attached to my freelancer profile.
During the day I am a professional C programmer. However I'm trying to build up my reputation on here cause I am planning in going traveling.
After reading the specification I know I'll have no trouble completing this project. However I can only work on it in the evening due to my day job, so will take a little longer.
If you'd like to chat more don't hesitate to message me. I'm available for a Skype chat from 7pm (GMT) onwards.
Cheers,
John