Tcp-ip Socket Programming
1 of 37
Tcp-ip Socket Programming
Featured
A Practical Evaluation Of Popular Volume Rendering Algorithms
Presentation on Recruitment
G.K._PAPER-I
NZ endangered
Acceptance Sampling Operation Management
nano
Dividing Decimals
Divestiture Case Study Swift and Company
impact environment
Perceived Brand Trust in Financial Services in India
scavenger hunt
Adding and Subtracting Polynomials
Dioxins And Pcbs
Space Time Transmit Diversity Aided Acquisition And Detection In Cdma Networks
Diffusion of Innovations
Pythagorean Worksheet TI84
boston globe apple angers some early adopters
Australia 2
Tiffany Owens Annmarie Gilroy 4P Tertulian
Poverty and Economic DevelopmentEvidence from Asia Africa
Tcp-ip Socket Programming - Transcript
CS4514 B06 HELP Session 1
Presented by Mingzhe Li lmz cs wpi edu
CS4514 TCP IP Socket Programming
Outline
Project 1 Overview Unix Network Programming
TCP Client TCP Server
Processing commands How to find help and other tips
2 CS4514 B05 TCP IP Socket Programming
CS4514 Project1
Your programs should compile and work on ccc wpi edu computers which are running Linux Programs should be written in C or C If your program is developed on another platform or machine you should test the software on ccc before turning in the assignment Make sure you have the correct include in your program
3 CS4514 B05 TCP IP Socket Programming
Project 1 missions in handout
The Client
1 Reading a command from a script file or from console 2 Sending the command to the server 3 Receiving and displaying the information from the server 4 Writing the results to the log file LClient log
4 CS4514 B05 TCP IP Socket Programming
Project 1 missions in handout
Server
1 Processing the command from the client and return the result to the client 2 Maintaining the records to keep the location information 3 Writing the complete database to the file LDatabase txt when the server received the quit EOF command
5 CS4514 B05 TCP IP Socket Programming
Outline
Project 1 Overview Unix Network Programming
TCP Client TCP Server
Processing commands How to find help and other tips
6 CS4514 B05 TCP IP Socket Programming
Server connection oriented protocol socket bind listen accept blocks until connection from client read process request write data reply data request Client
Socket system calls for Socket connection oriented connection oriented protocol TCP
socket
connection establishment connect
write
read
7
CS4514 B05 TCP IP Socket Programming
What Do We Need
Data communication between two hosts on the Internet require the five components protocol local addr local process foreignaddr foreign process The different system calls for sockets provides values for one or more of these components
8 CS4514 B05 TCP IP Socket Programming
What Do We Need
The socket system call just fills in one element of the five tuple we ve looked at the protocol The remaining are filled in by the other calls as shown in the figure
protocol
Connection Oriented Server TCP Connection oriented Client TCP Connectionless Server UDP Connectionless Client UDP
local addr local process
foreign addr foreign process
socket bind socket socket socket bind bind
accept connect recvfrom sendto
9
CS4514 B05 TCP IP Socket Programming
TCP Connection Client
Connection Oriented
Specify transport address once at connection
socket connect read write recv send close
Use File Operations
read write
or
recv send
Reliable Protocol
CS4514 B05 TCP IP Socket Programming
10
Example TCP Client
int sd struct hostent hp usr include netdb h struct sockaddr in server usr include netinet in h prepare a socket if sd socket AF INET SOCK STREAM 0 0 perror strerror errno exit 1
CS4514 B05 TCP IP Socket Programming
11
Example TCP Client Continued
prepare server address bzero char server sizeof server server sin family AF INET server sin port htons SERVER PORT if hp gethostbyname SERVER NAME NULL perror strerror errno exit 1 bcopy hp h addr char server sin addr hp h length
CS4514 B05 TCP IP Socket Programming
12
Example TCP Client Continued
connect to the server if connect sd struct sockaddr server sizeof server 0 perror strerror errno exit 1 send receive data while 1 read write close socket 13 close sd
CS4514 B05 TCP IP Socket Programming
TCP Connection Server
Bind transport address to socket Listen to the socket Accept connection on a new socket
socket bind listen accept read write close
CS4514 B05 TCP IP Socket Programming 14
Example TCP Server
int sd nsd struct sockaddr in server usr include netinet in h sd socket AF INET SOCK STREAM 0 bzero char server sizeof server server sin family AF INET server sin port htons YOUR SERVER PORT server sin addr s addr htonl INADDR ANY
15 CS4514 B05 TCP IP Socket Programming
Example TCP Server Continued
bind sd struct sockaddr server sizeof server listen sd backlog while 1 nsd accept sd struct sockaddr client sizeof client read write close nsd close sd
CS4514 B05 TCP IP Socket Programming 16
Outline
Project 1 Overview Unix Network Programming
TCP Client TCP Server
Processing commands How to find help and other tips
17 CS4514 B05 TCP IP Socket Programming
Processing commands
Each command triggers a communication conversion between client and server Then we have
login add remove quit list attn this one is different from above commands most complex one
CS4514 B05 TCP IP Socket Programming
18
Commands
In the login add remove and quit commands
The server only returns one message to the client
In the list command The server could return multiple messages to the client
Each entry which meets the search condition is sent as a separate TCP message back to the Client
19 CS4514 B05 TCP IP Socket Programming
Login Command
Login Command Format
login
Login Command Handling
For The Client When the Client reads a login command the client establishes a TCP connection to the Server For The Server When the Server receives a login it replies Hello to the client 20
CS4514 B05 TCP IP Socket Programming
Add Command
Add Command Format
add first name last name id number location
Notes first name last name and location are nonblank ascii string For example Tony Smith 12 Institute rd worcester id number is 9 digital number similar to SSN number example 321654987
For the Client
reads and sends the add command to the server and displays the result returned from server
21 CS4514 B05 TCP IP Socket Programming
Add Command cont d
For the Server
When the server gets the Add command it will
add the four items as an entry into the location database in the proper location and return a successful message to client If a duplicate id number is received the server simply overwrites information associated with this id number and returns a successful message to the server If the command s parameter is not valid the server returns an Error message to the client For example Add Tony Smith 12033 000 worcester MA returns an invalid add commands 22
CS4514 B05 TCP IP Socket Programming
Remove Command
Remove command format remove id number
example remove 123456789 is a valid command
For the Client
sends the remove command to the server and displays the result returned from server
23 CS4514 B05 TCP IP Socket Programming
Remove command cont d
For the Server
When the server receives remove command the server searches the database for a match on id number
If the id number entry exists in the database for a person that entry is removed from the location database and a success message that contains the first and last name of the person removed is sent back If there is not a match in the database the server does not modify the database and sends an appropriate error message back to the Client
24 CS4514 B05 TCP IP Socket Programming
Quit Command
Quit Command format
quit EOF
For example quit and quit EOF are valid commands
For the Client
sends the quit command to the server and when the client received the response message from server the client know the connection will be closed If EOF is specified the client will close the log file and terminate 25
CS4514 B05 TCP IP Socket Programming
Quit Command Cont d
For the Server
When server received quit command it sends a response back to the Client indicating that the connection will be closed The server returns to wait for a new connection triggered by a subsequent login request If quit EOF is received the Server additionally writes out the complete database to the file LDatabase txt and then terminates
26 CS4514 B05 TCP IP Socket Programming
List Command
List Command format
list start finish Notes start finish are two single letter of the alphabet Examples list A N Find the entries whose last names with A as the first letter up to and including all last names with N as the first letter such Anderson Lincoln etc list C C Find the entries whose last names begin with C list W A Invalid Command 27
CS4514 B05 TCP IP Socket Programming
List Command cont d
For the Client
Sends the command to the server and displays the response message from the server
For the Server
When received the list command sends All location entries satisfying the list limits sends no such records if there are no entries satisfying the list request sends invalid command if the list command is in illegal format for example list Z A or list A
28 CS4514 B05 TCP IP Socket Programming
Outline
Project 1 Overview Unix Network Programming
TCP Client TCP Server
Processing a command How to find help and other tips
29 CS4514 B05 TCP IP Socket Programming
Some Useful System Calls
Gethostbyname map hostname to IP addr
struct hostent gethostbyname char name
Getservbyname look up service name given
struct servent getservbyname const char servname const char protocol
Gethostname get own hostname
int gethostname char name size t len
30 CS4514 B05 TCP IP Socket Programming
Others Tips
Include files
include sys types h include netinet in h include netdb h include signal h include fcntl h include sys time h include memory h include sys socket h include arpa inet h include unistd h include stdio h include errno h include stdlib h include string h
Programming tips
always check the return value for each function call consult the UNIX on line manual pages man for a complete description Internet Beej s Guide to Network Programming http www ecst csuchico edu beej guide net 31
CS4514 B05 TCP IP Socket Programming
Server Database
There are many possible data structure choices for implementing the server data base Two of them are
Linked list Easy to add remove an entry Array The simplest data structure
32 CS4514 B05 TCP IP Socket Programming
Sorting in Database
The server s database is maintained alphabetically by last name
There is no secondary key in the database If the people have the same last name you don t need to sort them based on their first name For example based on a linked list Andy Smith and Tony Smith in the database
Smith Andy Smith Tony Smith Tony Smith Andy
33
CS4514 B05 TCP IP Socket Programming
Case insensitive string comparison
The case insensitive string compare functions in Linux
int strcasecmp const char s1 const char s2 int strncasecmp const char s1 const char s2 size t n Their usage is similar to strcmp function
An Alternative method Storing the information in upper case letters in
server s database Smith SMITH
34 CS4514 B05 TCP IP Socket Programming
HELP
Bring printouts to office hours Email questions to Prof TA SA cs4514 staff cs wpi edu You CAN email a specific TA SA but do not expect immediate results better to use the staff mailing list We do have a class mailing list that could be used as a last resort
35 CS4514 B05 TCP IP Socket Programming
Questions
36 CS4514 B05 TCP IP Socket Programming
More Tips File and Stdio
In Linux a device could be treated as a file For example the standard input device could be handled as a file
fgets will read a line from the keyboard fp stdin fgets buffer buffer len fp next fgets will read a line from the file named script txt fp fopen script txt r 37 fgets buffer buffer len fp
CS4514 B05 TCP IP Socket Programming












