Networks Sockets and Streams. TCP/IP in action server ports 13 17 80 …65535 lower port numbers...

17
Networks Sockets and Streams

Transcript of Networks Sockets and Streams. TCP/IP in action server ports 13 17 80 …65535 lower port numbers...

Page 1: Networks Sockets and Streams. TCP/IP in action server ports 13 17 80 …65535 lower port numbers (1..1023) are reserved port echo7 time13 ftp20 telnet23.

Networks

Sockets and Streams

Page 2: Networks Sockets and Streams. TCP/IP in action server ports 13 17 80 …65535 lower port numbers (1..1023) are reserved port echo7 time13 ftp20 telnet23.

TCP/IP in action

server

ports

13 17 80 …65535

lower port numbers (1..1023) are reserved

portecho 7time 13ftp 20telnet 23finger 79http 80pop3 110

Page 3: Networks Sockets and Streams. TCP/IP in action server ports 13 17 80 …65535 lower port numbers (1..1023) are reserved port echo7 time13 ftp20 telnet23.

Socket = server + port

server = www.seas.smu.edu

ports

13 17 80 …65535

client

Sockethttp://www.seas.smu.edu

Page 4: Networks Sockets and Streams. TCP/IP in action server ports 13 17 80 …65535 lower port numbers (1..1023) are reserved port echo7 time13 ftp20 telnet23.

The Java Socket Class

Page 5: Networks Sockets and Streams. TCP/IP in action server ports 13 17 80 …65535 lower port numbers (1..1023) are reserved port echo7 time13 ftp20 telnet23.

Java Socket Class

server

ports

13 17 3180 …65535

client

Socket instance

Page 6: Networks Sockets and Streams. TCP/IP in action server ports 13 17 80 …65535 lower port numbers (1..1023) are reserved port echo7 time13 ftp20 telnet23.

Sockets create Streams

server

ports

13 17 3180client

Socket instance

InputStream

OutputStream

Page 7: Networks Sockets and Streams. TCP/IP in action server ports 13 17 80 …65535 lower port numbers (1..1023) are reserved port echo7 time13 ftp20 telnet23.

class Socket• Socket is the Java representation of a TCP

network connection• Using Socket, a client can create a stream-based

communication channel with a remote host• To communicate, a socket connection to the

remote host must be established - specifying the address and the port

• There must be a server program actively listening on the port or the connection will fail -- throw an Exception

Page 8: Networks Sockets and Streams. TCP/IP in action server ports 13 17 80 …65535 lower port numbers (1..1023) are reserved port echo7 time13 ftp20 telnet23.

Socketconstructor

• Socket (String host, int port) throws IOException– port must be by name or text IP

address– port must be 1-65535

Page 9: Networks Sockets and Streams. TCP/IP in action server ports 13 17 80 …65535 lower port numbers (1..1023) are reserved port echo7 time13 ftp20 telnet23.

java.net.Socket• Constructor:

Socket (String host, int port)

Socket s = new Socket(“www.sun.com”, 80);

in = s.getInputStream();int k = in.read();

anInputStream(returns bytes)

returns 1st byte of web page

sin

world of TCP/IP

Page 10: Networks Sockets and Streams. TCP/IP in action server ports 13 17 80 …65535 lower port numbers (1..1023) are reserved port echo7 time13 ftp20 telnet23.

Socket methods• Socket (String host, int port)

– constructor

• InputStream getInputStream ()– gets InputStream for reading

• OutputStream getOutputStream()– get OutputStream for writing

Page 11: Networks Sockets and Streams. TCP/IP in action server ports 13 17 80 …65535 lower port numbers (1..1023) are reserved port echo7 time13 ftp20 telnet23.

java.net.Socket• Constructor:

Socket (String host, int port)

Socket s = new Socket(“112.62.12.0”, 80);

s

in

world of TCP/IP

out

can use IP address written as a string

the socket instance acts as a stream “factory” -- design pattern

Page 12: Networks Sockets and Streams. TCP/IP in action server ports 13 17 80 …65535 lower port numbers (1..1023) are reserved port echo7 time13 ftp20 telnet23.

more Socket methods

• synchronized void close ()– closes the socket

• void setSoTimeout (int timeout)– Socket will block for only this amt of time

-- then InterruptedException is raised

Page 13: Networks Sockets and Streams. TCP/IP in action server ports 13 17 80 …65535 lower port numbers (1..1023) are reserved port echo7 time13 ftp20 telnet23.

“localhost”

“127.0.0.1”

Page 14: Networks Sockets and Streams. TCP/IP in action server ports 13 17 80 …65535 lower port numbers (1..1023) are reserved port echo7 time13 ftp20 telnet23.

SocketTest.javaimport java.io.*;import java.net.*;

class SocketTest{ public static void main(String[ ] args) { try { Socket t =

new Socket(”nova.seas.smu.edu", 13); BufferedReader is = new BufferedReader (new InputStreamReader(t.getInputStream()));

(Continued ) (Continued )

Page 15: Networks Sockets and Streams. TCP/IP in action server ports 13 17 80 …65535 lower port numbers (1..1023) are reserved port echo7 time13 ftp20 telnet23.

boolean more = true; while (more) { String str = is.readLine(); if (str == null) more = false; else System.out.println(str); } }

(Continued ) (Continued )

Page 16: Networks Sockets and Streams. TCP/IP in action server ports 13 17 80 …65535 lower port numbers (1..1023) are reserved port echo7 time13 ftp20 telnet23.

catch(IOException e) { System.out.println("Error" + e); } }}

Page 17: Networks Sockets and Streams. TCP/IP in action server ports 13 17 80 …65535 lower port numbers (1..1023) are reserved port echo7 time13 ftp20 telnet23.

Socket t = new Socket(”nova.seas.smu.edu", 13); BufferedReader is = new BufferedReader (new InputStreamReader( t.getInputStream( ) ) );