Referring to Java API Specifications - PowerPoint PPT Presentation

1 / 22
About This Presentation
Title:

Referring to Java API Specifications

Description:

public static void main(String[] args) throws IOException ... catch(IOException e) { System.err.println('Communication error'); System.exit(1) ... – PowerPoint PPT presentation

Number of Views:22
Avg rating:3.0/5.0
Slides: 23
Provided by: kart3
Category:

less

Transcript and Presenter's Notes

Title: Referring to Java API Specifications


1
Referring to Java API Specifications
  • http//java.sun.com/j2se/1.4.1/docs/api

2
Java Network Programming
3
Representing IP address InetAddress
  • public static InetAddress getByName(String host)
  • InerAddress a InetAddress.getByName(compserv1.c
    s.sunysb.edu)
  • InerAddress a InetAddress.getByName(localhost)

4
TCP Sockets
Server
Client
accept()
ServerSocket
Socket
5
Sockets
Server
Client
ServerSocket
Socket
connect()
6
Sockets
Server
Client
ServerSocket
connect()
Socket
Socket
7
Sockets
Server
Client
accept()
ServerSocket
Socket
Socket
8
Socket
  • public Socket()
  • Creates an unconnected socket.
  • public Socket(String host, int port)
  • Creates a stream (TCP) socket and connects it to
    the specified port number on the named host.

9
Socket
  • void bind(SocketAddress bindpoint)
              Binds the socket to a local address.
  •  void close()           Closes this socket.
  •  void connect(SocketAddress endpoint)
              Connects this socket to the server.
  •  void connect(SocketAddress endpoint,
    int timeout)           Connects this socket to
    the server with a timeout.

10
ServerSocket
  • ServerSocket()           Creates an unbound
    server socket.
  • ServerSocket(int port)           Creates a
    server socket, bound to the port.
  • ServerSocket(int port, int backlog)
              Creates a server socket and binds it
    to the local port number, with the backlog.
  • ServerSocket(int port, int backlog,
    InetAddress bindAddr)           Create a server
    with the port, listen backlog, and local IP
    address to bind to.

11
ServerSocket
  •  Socket accept()           Listens for a
    connection and accepts it.
  •  void bind(SocketAddress endpoint)
              Binds to an address.
  •  void bind(SocketAddress endpoint, int backlog)
              Binds to an address with backlog
    limit.
  •  void close()           Closes this socket.

12
TCP Echo Server (again!)
13
  • import java.io.
  • import java.net.
  • public class EchoServer
  • public static final int PORT 8080
  • public static void main(String args) throws
    IOException
  • ServerSocket listen_sock new ServerSocket(PORT)
  • try
  • // Block until a connection occurs
  • Socket socket listen_sock.accept()
  • try
  • // Connection accepted
  • BufferedReader in new BufferedReader(
  • new InputStreamReader( socket.getInputStream())
  • )

14
  • // Output is automatically flushed by
    PrintWriter
  • PrintWriter out new PrintWriter(
  • new BufferedWriter(
  • new OutputStreamWriter( socket.getOutputStream())
  • ) , true)
  • // echo back and forth
  • while (true)
  • String str in.readLine()
  • if (str.equals("END")) break
  • out.println(str)
  • finally
  • System.out.println("closing...")
  • socket.close()
  • finally listen_sock.close()

15
TCP Echo Client
16
  • import java.net.
  • import java.io.
  • public class EchoClient
  • public static void main(String args) throws
    IOException
  • InetAddress addr InetAddress.getByName(localho
    st)
  • // Create a socket and connect to remote server
  • Socket socket new Socket(addr,
    EchoServer.PORT)
  • try
  • // Get the input stream
  • BufferedReader in new BufferedReader(
  • new InputStreamReader(socket.getInputStream()))

17
  • // Get the output stream
  • PrintWriter out new PrintWriter(
  • new BufferedWriter(
  • new OutputStreamWriter(
  • socket.getOutputStream())
  • ), true)
  • for(int i 0 i lt 10 i )
  • out.println(Hello " i)
  • String str in.readLine()
  • System.out.println(str)
  • out.println("END")
  • finally socket.close()

18
DatagramSocket
  • DatagramSocket()
  • Constructs a datagram socket and binds it to any
    available port.
  •  DatagramSocket(int port)
  • Constructs a datagram socket and binds it to the
    specified port.
  •  DatagramSocket(int port, InetAddress laddr)
  • Creates a datagram socket, bound to the specified
    local address.
  •  DatagramSocket(SocketAddress bindaddr)
  • Creates a datagram socket, bound to the specified
    local address.

19
DatagramPacket
  • DatagramPacket(byte buf, int length)
  • Constructs a DatagramPacket for receiving
    packets.
  • DatagramPacket(byte buf, int length,
    InetAddress address, int port)
  • Constructs a datagram packet for sending packets
    to the specified address and port.

20
UDP Echo Server example
21
  • // buffer to receive data
  • byte buf new byte1000 // buffer
  • // create packet for receiving
  • DatagramPacket recv_dp new DatagramPacket(buf,
    buf.length)
  • // create socket for sending
  • DatagramSocket socket
  • try
  • socket new DatagramSocket(INPORT)
  • while(true)
  • // Block until a datagram appears
  • socket.receive(recv_dp)
  • // Extract the string received
  • String str new String(recv_dp.getData(), 0,
    recv_dp.getLength())

22
  • //Construct the datagram to send
  • DatagramPacket echo
  • new DatagramPacket(
  • str.getBytes(0, str.length(), buf, 0),
    str.length,
  • recv_dp.getAddress(), recv_dp.getPort())
  • // send it back
  • socket.send(echo)
  • catch(SocketException e)
  • System.err.println("Can't open socket")
  • System.exit(1)
  • catch(IOException e)
  • System.err.println("Communication error")
  • System.exit(1)
Write a Comment
User Comments (0)
About PowerShow.com