黑马程序员技术交流社区
标题:
UDP的聊天程序
[打印本页]
作者:
sven556677
时间:
2015-8-21 16:17
标题:
UDP的聊天程序
打的冲忙,没怎么加注释
package com.cn.test;
import java.io.*;
import java.net.*;
/**
* 聊天程序,一个线程负责发送,一个线程负责接收
* @author Administrator
*
*/
class RcvThread implements Runnable{
private DatagramSocket ds;
public RcvThread (DatagramSocket ds){
this.ds=ds;
}
public void run() {
try {
while(true){
byte[] buf=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf, buf.length);
ds.receive(dp);
String content=new String(dp.getData(),0,dp.getLength());
String ip=dp.getAddress().getHostAddress();
int add=dp.getPort();
System.out.println("内容"+content+"地址"+ip+"端口"+add);
}
} catch (Exception e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
class SendThread implements Runnable{
DatagramSocket ds;
public SendThread(DatagramSocket ds){
this.ds=ds;
}
public void run(){
try {
DatagramSocket ds=new DatagramSocket();
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String line=null;
while((line=br.readLine())!=null){
byte [] buf=line.getBytes();
DatagramPacket dp=new DatagramPacket(buf, buf.length,InetAddress.getByName("192.168.1.4"),5244);
ds.send(dp);
if("886".equals(line))break;
}
ds.close();
} catch (Exception e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
public class UDPChater {
public static void main(String[] args) throws SocketException {
DatagramSocket rds=new DatagramSocket(5244);
DatagramSocket sds=new DatagramSocket();
RcvThread rt=new RcvThread(rds);
SendThread st=new SendThread(sds);
new Thread(rt).start();
new Thread(st).start();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2