Easy Steps to implement UDP Server and Client Sockets

11
Java Network Programming

description

Easy Steps to implement UDP Server and Client Sockets in Network programming using Java

Transcript of Easy Steps to implement UDP Server and Client Sockets

Page 1: Easy Steps to implement UDP Server and Client Sockets

Java Network Programming

Page 2: Easy Steps to implement UDP Server and Client Sockets

Datagram (UDP) Sockets

• Unlike TCP/IP sockets, datagram sockets are connectionless

• Connection between client and server is not maintained throughout the duration of the dialogue

• Each datagram packet is sent as an isolated transmission

• Datagram (UDP) sockets provide a faster means of transmitting data than TCP/IP sockets, but they are unreliable.

Page 3: Easy Steps to implement UDP Server and Client Sockets

Datagram (UDP) Sockets (contd)• The server does not create an individual Socket

object for each client• Instead of a ServerSocket object, the server creates a

DatagramSocket object • As does each client when it wants to send

datagram(s) to the server• DatagramPacket objects are created and sent at

both ends, rather than simple Strings.

Page 4: Easy Steps to implement UDP Server and Client Sockets

UDP Server

• Process involves the following nine steps1. Create a DatagramSocket object

DatagramSocket datagramSocket =new DatagramSocket(1234);

2.Create a buffer for incoming datagrams byte[] buffer = new byte[256];

Page 5: Easy Steps to implement UDP Server and Client Sockets

UDP Server (Contd)

3. Create a DatagramPacket object for the incoming datagram

• The constructor for this object requires two arguments:• the previously-created byte array• the size of this array

DatagramPacket inPacket = new DatagramPacket(buffer,

buffer.length);

Page 6: Easy Steps to implement UDP Server and Client Sockets

UDP Server (Contd)

4. Accept an incoming datagram datagramSocket.receive(inPacket);

5. Retrieve the sender's address and port from the packet

InetAddress clientAddress = inPacket.getAddress();int clientPort = inPacket.getPort();

Page 7: Easy Steps to implement UDP Server and Client Sockets

UDP Server (contd)

6. Retrieve the data from the bufferString message = new String(inPacket.getData(),

0,inPacket.getLength());

7. Create the response datagram– Create a DatagramPacket object, using an overloaded

form of the constructor thattakes four arguments:• the byte array containing the response message;• the size of the response;• the client's address;• the client's port number.

Page 8: Easy Steps to implement UDP Server and Client Sockets

UDP Server (contd)

DatagramPacket outPacket =new

DatagramPacket(response.getBytes(),response.length(),clientAddress,

clientPort);

8.Send the response datagram datagramSocket.send(outPacket);

9.Close the DatagramSocket datagramSocket.close();

Page 9: Easy Steps to implement UDP Server and Client Sockets

UDP Client

• Setting up the corresponding client requires the eight steps listed below

1. Create a DatagramSocket object DatagramSocket datagramSocket = new

DatagramSocket();

2. Create the outgoing datagram• This step is exactly as for step 7 of the server program

DatagramPacket outPacket =new DatagramPacket(message.getBytes(),

message.length(), host, PORT);

Page 10: Easy Steps to implement UDP Server and Client Sockets

UDP Client (contd)

3. Send the datagram message datagramSocket.send(outPacket);

4. Create a buffer for incoming datagrams byte[] buffer = new byte[256];

5.Create a DatagramPacket object for the incoming datagrams

DatagramPacket inPacket = new DatagramPacket(buffer,

buffer.length);

Page 11: Easy Steps to implement UDP Server and Client Sockets

UDP Client (contd)

6. Accept an incoming datagramdatagramSocket.receive(inPacket);

7. Retrieve the data from the bufferString message = new String(inPacket.getData(),

0,inPacket.getLength());

8. Close the DatagramSocketdatagramSocket.close();