Dr. Mark Humphrys

School of Computing. Dublin City University.

Home      Blog      Teaching      Research      Contact

Search:

CA249      CA318      CA425      CA651

w2mind.computing.dcu.ie      w2mind.org


List of ports


Sockets and Ports


6.1.3 Sockets

Sockets are a service provided by transport layer.
Set of primitives to enable a bi-directional comms link between A and B.


Primitive socket commands in TCP.

  1. Server side: Server startup executes SOCKET, BIND, LISTEN.
    LISTEN - allocate queue for multiple simultaneous clients.

    ACCEPT - suspend server until request. When client request arrives: ACCEPT returns.
    Start new socket (thread or process) with same properties as original, this handles the request,
    server goes on waiting on original socket.
    If new request arrives while spawning thread for this one, it is queued.
    If queue full it is refused.

  2. Client side: SOCKET to create. Then CONNECT. When this returns the socket is open.

    Both sides can now SEND, RECEIVE.

    Connection not released until both sides do CLOSE. Typically client does it, server acks.



6.2.1 Ports (also 6.5.2)

Port - Logical (not physical) connection to computer (server).
One hardware link: Many ports.
One host (physical server) can run many services (listening processes) at different addresses.

IP address = Address of a host.
IP address + port = Address of a process (service) on a host.

List of ports.
1 to 65535 (16 bit no).
Ports set aside for some "well-known" services:

Full list:

Server machine may run multiple server processes, each contactable on different port.
Conversely, multiple clients may want to contact same port (e.g. Web server).
Client creates socket at its end. Sends request to server (at port no). Server creates socket at its end dedicated to that client.
One port: Many sockets to that port.



Server code in C

A simple file server in C, explained in 6.1.4:

Infinite loop. Can only be stopped by external kill (end process).
ACCEPT returns - client has connected.
Can both read from and write to the "socket address" sa.

Client sends the file name it wants.
Server writes the file to the socket and then closes the socket.
Back to infinite loop: ACCEPT - suspend waiting for next request.


Client code in C

The client for the file server:

Usage:

$ client host filename 
returns file contents to stdout.



Feeds      HumphrysFamilyTree.com

Bookmark and Share           On Internet since 1987.