Welcome Guestlogin to KGsePGregister at KGsePG email | FAQs

Tcp-ip Socket Programming

download

    1 of 37

    Tcp-ip Socket Programming



    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