TCPIP Sockets in Java: Practical Guide for Programmers - PowerPoint PPT Presentation

1 / 20
About This Presentation
Title:

TCPIP Sockets in Java: Practical Guide for Programmers

Description:

Create a TCP socket. Repeatedly: Accept new connection. Communicate. Close ... Create a TCP socket. Bind socket to a port. Set socket to listen. Repeatedly: ... – PowerPoint PPT presentation

Number of Views:184
Avg rating:3.0/5.0
Slides: 21
Provided by: dona5
Category:

less

Transcript and Presenter's Notes

Title: TCPIP Sockets in Java: Practical Guide for Programmers


1
TCP/IP Sockets in Java Practical Guide for
Programmers
  • Kenneth L. Calvert
  • Michael J. Donahoo

2
Computer Chat
  • How do we make computers talk?
  • How are they interconnected?
  • Internet Protocol (IP)

3
Internet Protocol (IP)
  • Datagram (packet) protocol
  • Best-effort service
  • Loss
  • Reordering
  • Duplication
  • Delay
  • Host-to-host delivery

4
IP Address
  • 32-bit identifier
  • Dotted-quad 192.118.56.25
  • www.mkp.com -gt 167.208.101.28
  • Identifies a host interface (not a host)

192.18.22.13
209.134.16.123
5
Transport Protocols
  • Best-effort not sufficient!
  • Add services on top of IP
  • User Datagram Protocol (UDP)
  • Data checksum
  • Best-effort
  • Transmission Control Protocol (TCP)
  • Data checksum
  • Reliable byte-stream delivery
  • Flow and congestion control

6
Ports
  • Identifying the ultimate destination
  • IP addresses identify hosts
  • Host has many applications
  • Ports (16-bit identifier)

Application WWW E-mail Telnet
Port 80 25 23
192.18.22.13
7
Sockets
  • Identified by protocol and local/remote
    address/port
  • Applications may refer to many sockets

8
Clients and Servers
  • Client Initiates the connection
  • Server Passively waits to respond

Server Jane
Client Bob
Hi, Bob. Im Jane
Hi. Im Bob. Nice to meet you, Jane.
9
TCP Client/Server Interaction
Server starts by getting ready to receive
client connections
  • Server
  • Create a TCP socket
  • Repeatedly
  • Accept new connection
  • Communicate
  • Close the connection
  • Client
  • Create a TCP socket
  • Communicate
  • Close the connection

10
TCP Client/Server Interaction
ServerSocket servSock new ServerSocket(servPo
rt)
  • Server
  • Create a TCP socket
  • Repeatedly
  • Accept new connection
  • Communicate
  • Close the connection
  • Client
  • Create a TCP socket
  • Communicate
  • Close the connection

11
TCP Client/Server Interaction
for () Socket clntSock
servSock.accept()
  • Server
  • Create a TCP socket
  • Repeatedly
  • Accept new connection
  • Communicate
  • Close the connection
  • Client
  • Create a TCP socket
  • Communicate
  • Close the connection

12
TCP Client/Server Interaction
Server is now blocked waiting for connection
from a client
  • Server
  • Create a TCP socket
  • Repeatedly
  • Accept new connection
  • Communicate
  • Close the connection
  • Client
  • Create a TCP socket
  • Communicate
  • Close the connection

13
TCP Client/Server Interaction
Later, a client decides to talk to the server
  • Server
  • Create a TCP socket
  • Repeatedly
  • Accept new connection
  • Communicate
  • Close the connection
  • Client
  • Create a TCP socket
  • Communicate
  • Close the connection

14
TCP Client/Server Interaction
Socket socket new Socket(server, servPort)
  • Server
  • Create a TCP socket
  • Repeatedly
  • Accept new connection
  • Communicate
  • Close the connection
  • Client
  • Create a TCP socket
  • Communicate
  • Close the connection

15
TCP Client/Server Interaction
OutputStream out socket.getOutputStream()
out.write(byteBuffer)
  • Server
  • Create a TCP socket
  • Repeatedly
  • Accept new connection
  • Communicate
  • Close the connection
  • Client
  • Create a TCP socket
  • Communicate
  • Close the connection

16
TCP Client/Server Interaction
Socket clntSock servSock.accept()
  • Server
  • Create a TCP socket
  • Repeatedly
  • Accept new connection
  • Communicate
  • Close the connection
  • Client
  • Create a TCP socket
  • Communicate
  • Close the connection

17
TCP Client/Server Interaction
InputStream in clntSock.getInputStream()
recvMsgSize in.read(byteBuffer)
  • Server
  • Create a TCP socket
  • Repeatedly
  • Accept new connection
  • Communicate
  • Close the connection
  • Client
  • Create a TCP socket
  • Communicate
  • Close the connection

18
TCP Client/Server Interaction
close(sock)
close(clntSocket)
  • Server
  • Create a TCP socket
  • Bind socket to a port
  • Set socket to listen
  • Repeatedly
  • Accept new connection
  • Communicate
  • Close the connection
  • Client
  • Create a TCP socket
  • Establish connection
  • Communicate
  • Close the connection

19
TCP Tidbits
  • Client knows server address and port
  • No correlation between send() and recv()
  • Client
  • out.write(Hello Bob)
  • in.read() -gt Hi Jane
  • Server
  • in.read() -gt Hello
  • in.read() -gt Bob
  • out.write(Hi )
  • out.write(Jane)

20
Closing a Connection
  • close() used to delimit communication
  • Analogous to EOF
  • Client
  • out.write(string)
  • while (not received entire string)
  • in.read(buffer)
  • out.write(buffer)
  • close(socket)
  • Server
  • in.read(buffer)
  • while(client has not closed connection)
  • out.write(buffer)
  • in.read(buffer)
  • close(client socket)
Write a Comment
User Comments (0)
About PowerShow.com