In Progress

Write two programs one at client side and other for server using socket programming. They both have to communicate using TCP protocal. -- 2

Project 1: A Simple Client/Server Project

Project Objectives:

- Practice socket programming

- Design and build a client-server application

Project Description:

For the project, you will write two programs. A client and server application running on your localhost and a remote server host ([login to view URL]).

The two programs will be called pingClient and pingServer. You can use any programming language you want for this. The general architecture will look like this:

Your pingClient will allow the user to enter in a domain name (e.g. [login to view URL]). The client host will establish a TCP connection to the cs1 server host. The pingClient app will send the domain name entered by the user to the pingServer app running on the cs1 server.

PingServer will then ping the domain name (provided by pingClient) locally (at least 20 times) and return the following information to the pingClient.

- Domain name tested (echo the domain name back to client)

- # of packets transmitted (pings)

- # of packets received (successful pings) - % of packet loss

- Average rtt time.

pingClient will then display this information to the user. Format should be similar to this:

- Domain tested was: [domain].

- [number] pings were sent with [number] pings succeeding.

- [%] % of packets were lost

- The average RTT was: [time in seconds]

The client program must run in the command line:

e.g. pingClient [domainToTest]@hostname:server_port, which sends [domain name to test] to pingServer running on server_port at the computer specified by hostname (this is [login to view URL]). (No space is between hostname and server_port.) See Testing Environment section for port assignment.

Instead of developing a new ping service on your own, just use the ping service provided by Unix/Linux.

Being a multi-client server, the pingServer application should handle multiple concurrent connections. Your undergraduate OS course should have prepared you with these skills.

Background – Socket Programming:

There are several system calls that you may need to use for this project:

• Parsing addresses: getaddrinfo() Given node and service, which identify an Internet host and a service, getaddrinfo() returns one or more addrinfo structures, each of which contains an Internet address that can be specified in a call to bind() or connect().

• Setting up a connection: socket() Get a descriptor to a socket of the given typeconnect() Connect to a peer on a given socket

• Creating a server socket: bind() Assign an address to a socket listen() Tell a socket to listen for incoming connections accept() Accept an incoming connection

• Communicating over the connection: read(), write() Read and write data to a socket descriptor htons(), htonl(), ntohs() , ntohl() Convert between host and network byte orders (and vice versa) for 16 and 32bit values You can find the details of these functions in the Unix/Linux man pages (most of them are in section 2) and/or Google search.

Testing Environment:

Port numbers between 10000 and 13000 are open in the server for your project use. To avoid port collision with your classmates, use the following port based on your initials:

CA, port 10200

NB, port 10400

MB, port 10600

RH, port 10800

MJ, port 11000

OK, port 11200

SP, port 11400

SR, port 11600

HS, port 11800

AS, port 12000

PW, port 12200

Understand the Protocol

In this project, TCP is the transport protocol used for data communication between the client host and server host. TCP provides a reliable in-order byte stream and it has no message boundary. The pingClient and the pingServer applications must define their own application-layer protocol to communicate with each other.

Skills: Python, Socket IO, Computer Science

See more: client server socket programming project, client server socket programming window platform, client server socket programming sql, project client server socket programming java, feature client server socket programming, client server socket programming java, client server socket programming vbnet, server client chat socket programming, client server socket programming linux, math client server socket programming, send image client server socket programming java, tcp client server socket programming linux, client server socket programming in java, client server socket programming in c, client server socket programming in c++ example, client server socket programming in c linux, client server socket programming in c example, multiple client server socket programming in java

About the Employer:
( 0 reviews ) Seattle, United States

Project ID: #29947456

Awarded to:


Hi there! I'm an expertise Python developer who already worked with TCP sockets and with strong fundamentals in networking. I can deliver your project request in 2 days, asap, fulfilling all the requirements: a TCP so More

$25 USD in 2 days
(0 Reviews)

2 freelancers are bidding on average $28 for this job


Hello, I am professional freelancer with a Master's degree in Data analytics making me a suitable person for your project. I have more than 8 years of professional experience in Data analysis. Besides, I have skills i More

$30 USD in 1 day
(0 Reviews)