Lecture 30: TCPIP: ConnectionOriented Protocol - PowerPoint PPT Presentation

1 / 15
About This Presentation
Title:

Lecture 30: TCPIP: ConnectionOriented Protocol

Description:

A socket is an abstraction that treats a network connection as a stream of bytes ... catch (IOException e) { System.out.println(e); } % java EchoClient ... – PowerPoint PPT presentation

Number of Views:54
Avg rating:3.0/5.0
Slides: 16
Provided by: csUi
Category:

less

Transcript and Presenter's Notes

Title: Lecture 30: TCPIP: ConnectionOriented Protocol


1
Lecture 30 TCP/IP Connection-Oriented Protocol
  • Similar to a telephone conversation.
  • Server
  • Listens at a particular port for incoming
    conversations.
  • Client
  • Initiates a conversation with a server by naming
    the server and the port at which the server is
    listening.

2
(No Transcript)
3
  • Sockets
  • A socket is an abstraction that treats a network
    connection as a stream of bytes that can be read
    or written.
  • A socket is constructed by a client explicitly
    when it connects with a server.

4
Socket Class
  • Constructors
  • Socket sock new Socket("breeze.cs.uiowa.edu",
    7)
  • If we already have an InetAddress, say inad, use
    Socket sk new Socket(inad, 7)
  • Accessors
  • sock.getInetAddress() returns remote host
  • sock.getPort() returns remote port
  • sock.getLocalPort() returns local port

5
Socket Class
  • Creating Streams
  • InputStream is sock.getInputStream
  • OutputStream os sock.getOutputStream
  • Closing a Socket
  • sock.close()
  • Example Echo Client
  • Connect to the echo port on a Unix machine.

6
import java.net. import java.io. public
class EchoClient public static void
main(String args) String hostname
if (args.length gt 0) hostname
args0 else hostname
"akron.divms.uiowa.edu"
7
try Socket sock new
Socket(hostname, 7) System.out.println("
Connected to " sock.getInetAddress())
BufferedReader inStream new BufferedReader(
new InputStreamReader(sock.getInputSt
ream())) boolean autoFlush true
PrintWriter outStream new
PrintWriter( new
OutputStreamWriter(sock.getOutputStream()
),autoFlush) BufferedReader userInput
new BufferedReader( new
InputStreamReader(System.in))
8
System.out.println("Enter text with . to end")
String aLine userInput.readLine()
while (!aLine.equals("."))
System.out.println("User " aLine)
outStream.println(aLine)
System.out.println("Echo " inStream.readLine())
aLine userInput.readLine()
sock.close() catch
(UnknownHostException e)
System.out.println(e) catch (IOException
e) System.out.println(e)
9
java EchoClient Connected to gust.cs.uiowa.edu/1
28.255.28.94 Enter text with . to end Hello
gust. User Hello gust. Echo Hello gust. To be
or not to be. User To be or not to be. Echo To
be or not to be. This will be the last
line. User This will be the last line. Echo
This will be the last line. .
10
Example Look for Ports Connect to a host and try
all the ports from 1 to 1023 to see if they
accept a connection. Use a command-line argument.
11
import java.net. import java.io.
// Try on friendly machines
only. public class Look4Ports public static
void main(String args) String
host Socket theSocketnull
if (args.lengthgt0) host args0 else
host "localhost" try
for (int k1 klt1024 k)
12
try theSocket
new Socket(host, k) System.out.println
("Port " k " of "
host
" has a server.")
catch (ConnectException e)
// System.out.println(e)
if (theSocket!null)
theSocket.close()
13
catch (UnknownHostException e)
System.out.println(e) catch
(IOException e) System.out.println(e)

14
java Look4Ports red.weeg.uiowa.edu Port 21 of
red.weeg.uiowa.edu has a server. Port 22 of
red.weeg.uiowa.edu has a server. Port 23 of
red.weeg.uiowa.edu has a server. Port 25 of
red.weeg.uiowa.edu has a server. Port 106 of
red.weeg.uiowa.edu has a server. Port 110 of
red.weeg.uiowa.edu has a server. Port 111 of
red.weeg.uiowa.edu has a server. Port 113 of
red.weeg.uiowa.edu has a server. Port 512 of
red.weeg.uiowa.edu has a server. Port 513 of
red.weeg.uiowa.edu has a server. Port 514 of
red.weeg.uiowa.edu has a server. Port 620 of
red.weeg.uiowa.edu has a server. Port 621 of
red.weeg.uiowa.edu has a server. Port 999 of
red.weeg.uiowa.edu has a server.
15
Server Sockets
  • Constructor
  • ServerSocket ss new ServerSocket(2233)
  • Parameter is an int specifying the port.
  • Instance Method
  • Socket sock ss.accept()
  • Blocks until a client requests session with this
    host on server port.
  • Returns a Socket when a connection is made.
Write a Comment
User Comments (0)
About PowerShow.com