© Amir Kirsh Java Networking Written by Amir Kirsh, Edited by Liron Blecher.

14
© Amir Kirsh Java Networking Written by Amir Kirsh, Edited by Liron Blecher

Transcript of © Amir Kirsh Java Networking Written by Amir Kirsh, Edited by Liron Blecher.

Page 2: © Amir Kirsh Java Networking Written by Amir Kirsh, Edited by Liron Blecher.

Age

nda

• Downloading a web page

• TCP Client

• TCP Server

• What’s beyond

Page 3: © Amir Kirsh Java Networking Written by Amir Kirsh, Edited by Liron Blecher.

3

Downloading a web page

public static void main (String args[]) {

String line;try {

URL u = new URL(args[0]);

DataInputStream htmlPage =new DataInputStream(u.openStream());

while ((line = htmlPage.readLine()) != null) { System.out.println(line);

}}catch (Exception e) {

System.err.println(e); // naive treatment}

}

Page 4: © Amir Kirsh Java Networking Written by Amir Kirsh, Edited by Liron Blecher.

4

Dealing with URL encoding

public static void main (String args[]) {

String line;try {

URL u = new URL(URLEncoder.encode(

args[0], Charset.forName("UTF-8") ) );

DataInputStream htmlPage =new DataInputStream(u.openStream());

while ((line = htmlPage.readLine()) != null) { System.out.println(line);

}}catch (Exception e) {

System.err.println(e); // naive treatment}

}

Page 5: © Amir Kirsh Java Networking Written by Amir Kirsh, Edited by Liron Blecher.

Age

nda

• Downloading a web page

• TCP Client

• TCP Server

• What’s beyond

Page 6: © Amir Kirsh Java Networking Written by Amir Kirsh, Edited by Liron Blecher.

6

Simple TCP Echo Client

String line = "";

try (Socket socket = new Socket("localhost", 7000)) {

BufferedReader inputStream = new BufferedReader(new InputStreamReader(socket.getInputStream()));

PrintStream outputStream = new PrintStream(socket.getOutputStream());

BufferedReader userInput = new BufferedReader(new InputStreamReader(System.in));

while (!line.equals("!")) {

line = userInput.readLine();

outputStream.println(line);

System.out.println(inputStream.readLine());

}

}

Page 7: © Amir Kirsh Java Networking Written by Amir Kirsh, Edited by Liron Blecher.

7

Simple TCP Echo Client – cont’

public static void main(String[] args) {

try {…

} catch (Exception e) {

System.err.println(e);}

}

Page 8: © Amir Kirsh Java Networking Written by Amir Kirsh, Edited by Liron Blecher.

Age

nda

• Downloading a web page

• TCP Client

• TCP Server

• What’s beyond

Page 9: © Amir Kirsh Java Networking Written by Amir Kirsh, Edited by Liron Blecher.

9

Simple TCP Echo Server

String line = "";

try (ServerSocket server = new ServerSocket(7000)) {

Socket socket = server.accept(); // blockingBufferedReader inputStream = new BufferedReader(new

InputStreamReader(socket.getInputStream()));

PrintStream outputStream = new PrintStream(socket.getOutputStream());

while (!line.equals("!")) {

line = inputStream.readLine();

outputStream.println(line);

System.out.println(line);

}

}

Page 10: © Amir Kirsh Java Networking Written by Amir Kirsh, Edited by Liron Blecher.

10

Simple TCP Echo Server – cont’

public static void main(String[] args) {

try {…

} catch (Exception e) {

System.err.println(e);}

}

Page 11: © Amir Kirsh Java Networking Written by Amir Kirsh, Edited by Liron Blecher.

DEMO

examples.streams.simple

11

Page 12: © Amir Kirsh Java Networking Written by Amir Kirsh, Edited by Liron Blecher.

Age

nda

• Downloading a web page

• TCP Client

• TCP Server

• What’s beyond

Page 13: © Amir Kirsh Java Networking Written by Amir Kirsh, Edited by Liron Blecher.

13

What’s beyond

- UDPjava.net.DatagramSocket

- Multicastjava.net.MulticastSocket

- Selector and Channels (and nio in general)java.nio.channels

- Servlets (and JSP)

- Web Services

- RMI; EJB

Page 14: © Amir Kirsh Java Networking Written by Amir Kirsh, Edited by Liron Blecher.

DEMO

examples.streams.advanced

14