Multi user Chat
Client.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;
import java.net.SocketException;
import java.net.UnknownHostException;
public class Client implements Runnable
{
static MulticastSocket clientSocket ;
static byte[] recvData = new byte[1024];
static String getsen=”hmmm”;
static boolean send_flag=false;
public static void main(String[] args)
{
// TODO Auto-generated method stub
BufferedReader br ;
try
{
clientSocket = new MulticastSocket(4447);
InetAddress group = InetAddress.getByName(“230.0.0.1”);
InetAddress IPAddr = InetAddress.getByName(“localhost”);
clientSocket.joinGroup(group);
byte[] sendData = new byte[1024];
String sentence=null;
new Thread(new Client()).start();
//SEND DATA
while(true)
{
sentence=null;
br= new BufferedReader(new InputStreamReader(System.in));
sentence=br.readLine();
sendData = new byte[1024];
sendData = sentence.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData,sendData.length,IPAddr,9877);
clientSocket.send(sendPacket);
send_flag = true;
}
}
catch (SocketException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (UnknownHostException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
//READ FROM SERVER
public void run()
{
// TODO Auto-generated method stub
DatagramPacket recvPacket;
while(!getsen.equals(“Bye”))
{
try
{
recvPacket = new DatagramPacket(recvData,recvData.length);
clientSocket.receive(recvPacket);
getsen = new String(recvPacket.getData());
if(send_flag!=true)
System.out.println(“BROADCASTED MESSAGE:”+getsen);
getsen= ” “;
send_flag = false;
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
Server.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
public class Server
{
static byte[] recvData = new byte[1024];
static byte[] sendData = new byte[1024];
static DatagramSocket ds;
static InetAddress group;
public static void main(String[] args) { // TODO Auto-generated method stub
try {
ds = new DatagramSocket(9877);
group = InetAddress.getByName(“230.0.0.1”);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); DatagramPacket recvPack;
while(true) {
recvData = new byte[1024];
try {
recvPack = new DatagramPacket(recvData,recvData.length);
ds.receive(recvPack);
String sentence = new String(recvPack.getData());
System.out.println(sentence); method(sentence);
}
catch (IOException e)
{ // TODO Auto-generated catch block
e.printStackTrace();
}
}
} catch (SocketException e) { // TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) { // TODO Auto-generated catch block
e.printStackTrace();
}
} public static void method(String sentence) { // TODO Auto-generated method stub sendData = sentence.getBytes();
DatagramPacket sendPack = new DatagramPacket(sendData,sendData.length,group,4447);
try {
ds.send(sendPack);
} catch (IOException e) { // TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Peer to Peer Chat
Client.java
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class PeerClient {
public final static int PORT=8778;
public final static String SERVER_IP=”127.0.0.1″;
public static void main(String[] args) {
BufferedReader br=null;
DatagramSocket socket=null;
String s;
try {
socket=new DatagramSocket();
br=new BufferedReader(new InputStreamReader(System.in));
InetAddress server=InetAddress.getByName(SERVER_IP);
System.out.println(“Client Socket Created.\nENter msg:”);
while(true) {
System.out.print(“>”);
s=br.readLine();
byte[] sendMsg=s.getBytes();
DatagramPacket sendingPacket=new DatagramPacket(sendMsg, sendMsg.length,server,PORT);
socket.send(sendingPacket);
System.out.println(“Waiting for reply.”);
byte[] replyMsg=new byte[1000];
DatagramPacket receivingPacket=new DatagramPacket(replyMsg, replyMsg.length); socket.receive(receivingPacket);
byte[] data=receivingPacket.getData();
String s1=new String(data, 0,data.length); System.out.println(receivingPacket.getAddress().getHostAddress()+”:”+receivingPacket.getPort()+”=> “+s1);
if(s1.equalsIgnoreCase(“bye”)) { System.out.println(“Connection Closed”);
break;
}
} socket.close();
} catch (Exception e) { // TODO: handle exception } }}
Server.java
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class PeerServer {
public static void main(String[] args) {
DatagramSocket socket=null;
try { socket=new DatagramSocket(8778);
//server socket byte[] buffer=new byte[1000]; //buffer for msg DatagramPacket incomingPacket=new DatagramPacket(buffer, buffer.length); //packet to receive data System.out.println(“Server Socket Created.\nWaiting for data..\n”);
while(true) {
socket.receive(incomingPacket);
byte[] msg=incomingPacket.getData();
String s=new String(msg,0,msg.length); System.out.println(incomingPacket.getAddress().getHostAddress()+”:”+incomingPacket.getPort()+” > “+s);
if(s.equalsIgnoreCase(“bye”))
{ String reply=new String(“Bye”);
msg=reply.getBytes();
DatagramPacket sendPacket=new DatagramPacket(msg, msg.length,incomingPacket.getAddress(),incomingPacket.getPort()); socket.send(sendPacket); break;
}
else {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); System.out.print(“>”);
s=br.readLine();
msg=s.getBytes();
DatagramPacket sendPacket=new DatagramPacket(msg, msg.length,incomingPacket.getAddress(),incomingPacket.getPort()); socket.send(sendPacket);
}
}
socket.close();
} catch(Exception e) { } }
}