package com.hbsi.net;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/**
* 聊天对话,发送的时候同时也可以接受
* @author 乔晓松
*
*/
class Chat1 implements Runnable{
@Override
public void run() {
try {
disPlay();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void disPlay()throws Exception{
DatagramSocket ds=new DatagramSocket();
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String line=null;
while((line=br.readLine())!=null){
if(line.equals("886")){
break;
}
byte[] buf=line.getBytes();
InetAddress is=InetAddress.getByName("192.168.49.88");
DatagramPacket dp=new DatagramPacket(buf, buf.length, is,9009);
String s=InetAddress.getLocalHost().toString();
//String s1=InetAddress.getByName(s).toString();
System.out.print(s+": ");
ds.send(dp);
}
}
}
class Chat2 implements Runnable{
@Override
public void run() {
try {
disPlay();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void disPlay() throws Exception{
DatagramSocket ds=new DatagramSocket(9009);
while(true){
byte[] buf=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf, buf.length);
ds.receive(dp);
String host=dp.getAddress().getHostAddress();
//int i=dp.getPort();
String data=new String(dp.getData()).trim();
System.out.println(host+":"+data);
}
}
//ds.close();
}
public class ChatDemo {
/**
* @param args
*/
public static void main(String[] args) {
Chat1 c1=new Chat1();
Chat2 c2=new Chat2();
Thread t1=new Thread(c1);
Thread t2=new Thread(c2);
t1.start();
t2.start();
}
}