Lecture
Lecture
Sockets Programming
Lecture (1)
1
Sockets
receiving and
buffers, buffers,
variables variables
holding/transmitting some
part or thing. controlled
by OS
2
Sockets
Socket in Networking:
host or host or
server server
process sends/receives
messages to/from its controlled by
app developer
socket process process
3
Socket programming
Goal: learn how to build client/server application that
communicate using sockets
socket a host-local,
application-created,
OS-controlled interface (a “door”) into
which
application process can both send and
receive messages to/from another
application process
4
Socket programming
API: application programming interface (API) is a set of standard
function calls that can be used in an application. They allow
programmers to add Internet communication to their products. A
client/server architecture is mandatory for BSD sockets
Socket API
introduced in BSD4.1 UNIX, Socket API
1981
explicitly created, used, is a collection of socket calls that
released by apps enable you to perform the
following primary communication
client/server paradigm
functions between application
two types of transport programs: Set up and establish
service via socket API: connections to other users on the
unreliable datagram network. Send and receive data to
reliable, byte stream- and from other users. Close down
oriented connections
5
Socket programming
reliable, byte stream-oriented : The reliable byte stream is a
common service paradigm in computer networking; it refers to a
byte stream in which the bytes which emerge from the
communication channel at the recipient are exactly the same, and
in the same order, as they were when the sender inserted them
into the channel
unreliable datagram
A dedicated connection is established between the source and
destination end nodes, and message transfer is carried out without
a transmission guarantee. Errors (including sequence errors) are
detected and logged and are not informed back to the source end
node.
6
Socket-programming using TCP
Socket: a door between application process and end-
end-transport protocol (UDP or TCP)
TCP service: reliable transfer of bytes from one
process to another
controlled by
controlled by process application
application process
developer
developer socket socket
TCP with TCP with controlled by
controlled by
buffers, operating
operating buffers, internet system
system variables variables
host or host or
server server
7
Socket-programming
8
Socket programming with TCP
1-Client must contact server 4- When contacted by
server process must first client, server TCP creates
be running new socket for server
server must have created process to communicate with
socket (door) that client
welcomes client’s contact allows server to talk with
multiple clients
2-Client contacts server by:
source port numbers
creating client-local TCP
used to distinguish
socket
clients
specifying IP address, port TCP application viewpoint
number of server process
TCP provides reliable, in-order
3- When client creates
transfer of bytes (“pipe”)
socket: client TCP
between client and server
establishes connection to
server TCP
9
Sockets Types
your applications still can use the built-in socket
interfaces. The Network Component has
integrated:
The BSD Socket (Berkeley Software Distribution
or Berkeley Standard Distribution - (BSD) is a
discontinued operating system based on Research
Unix) API enables BSD compliant communication
over TCP/IP.
TCP Sockets support reliable IP communication
using the Transmission Control Protocol (TCP).
UDP Sockets provide simple IP communication
using the User Datagram Protocol (UDP). 10
Stream jargon
A stream is a sequence of
characters that flow into
or out of a process.
An input stream is
attached to some input
source for the process,
e.g., keyboard or socket.
An output stream is
attached to an output
source, e.g., monitor or
socket.
11
Socket programming with TCP
keyboard monitor
Example client-server app:
1) client reads line from
standard input (inFromUser
inFromUser
input
stream
stream) , sends to server via Client
socket (outToServer Process
process
stream)
2) server reads line from socket
3) server converts line to
uppercase, sends back to
inFromServer
outToServer
client
output input
stream stream
12
Client/server socket interaction: TCP
Server (running on hostid) Client
create socket,
port=x, for
incoming request:
welcomeSocket =
ServerSocket()
write reply to
connectionSocket read reply from
clientSocket
close
connectionSocket close
clientSocket
13
BSD Socket
client/server architecture is mandatory for BSD
sockets. Using TCP, a host listens for incoming
connection requests. Upon accepting an incoming
request, data can be transferred between the
hosts. UDP can also be used to establish a
connection.
15