Develop a program for chatting between two clients using datagram.

import java.net.*;

import java.io.*;

public class simpleChat

{

public static void main(String args[]) throws Exception

{

DatagramSocket ioSocket;

String toName, userIn;

byte sendBuffer[] = new byte[128];

byte receiveBuffer[] = new byte[128];

DatagramPacket sendPacket = new DatagramPacket(sendBuffer,128);

DatagramPacket receivePacket = new DatagramPacket(receiveBuffer,128);

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

int ioPort = 111,receiverPort = ioPort;

if (args.length>0)

toName = args[0];

else

toName = "localhost";

if (toName.equals("localhost"))

// Use port 111 or 222 whether

receiverPort = 222; // chatting with localhost or remote

try

{

ioSocket = new DatagramSocket(ioPort);

}

catch (Exception e)

{ // Switch ports when port 111 in use

ioPort = 222; receiverPort = 111;

ioSocket = new DatagramSocket(ioPort);

}

System.out.println("simpleChat on port "+ ioPort +". Ctrl Z to quit.");

while ((userIn=in.readLine())!=null)

{

// Read user input until Ctrl Z

sendBuffer= userIn.getBytes(); // Convert string to byte array

sendPacket = new DatagramPacket( sendBuffer,

sendBuffer.length,InetAddress.getByName(toName), receiverPort);

ioSocket.send(sendPacket); // Send packet

ioSocket.receive(receivePacket); // Wait to receive packet

System.out.println( "Received " + new

String(receivePacket.getData(),0, receivePacket.getLength())); // Print contents of received

packet

}

}

}

No comments:

Post a Comment