黑马程序员技术交流社区
标题:
java版本的局域网聊天工具
[打印本页]
作者:
anywayDo
时间:
2015-5-10 23:12
标题:
java版本的局域网聊天工具
本帖最后由 anywayDo 于 2015-5-10 23:14 编辑
import java.io.*;
import java.net.*;
class Send implements Runnable
{
private DatagramSocket ds;
public Send(DatagramSocket ds)
{
this.ds=ds;
}
public void run()
{
BufferedReader bfr=null;
try
{
bfr=new BufferedReader(new InputStreamReader(System.in));
String line=null;
while((line=bfr.readLine())!=null)
{
if(line.equals("over"))
break;
byte[] buf=line.getBytes();
DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.0.255"),10004);
ds.send(dp);
}
}
catch (Exception e)
{
throw new RuntimeException("发送端失败");
}
try
{
if(bfr!=null)
bfr.close();
}
catch (IOException e)
{
throw new RuntimeException("读取数据失败");
}
ds.close();
}
}
class Rece implements Runnable
{
private DatagramSocket ds;
public Rece(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 ip=dp.getAddress().getHostAddress();
String data=new String(dp.getData(),0,dp.getLength());
System.out.println(ip+"::"+data);
}
}
catch (Exception e)
{
throw new RuntimeException("接收端失败");
}
}
}
class ChatDemo
{
public static void main(String[] args)throws Exception
{
DatagramSocket Sendds=new DatagramSocket();
DatagramSocket Receds=new DatagramSocket(10004);
Send s=new Send(Sendds);
Rece r=new Rece(Receds);
Thread t1=new Thread(s);
Thread t2=new Thread(r);
t1.start();
t2.start();
}
}
复制代码
这样一段程序, 放在同一个局域网内的两台电脑上,运行后,就可以实现两台电脑间的信息传递。How amazing!
腾讯就是用一个小小的聊天工具了,开创了一个时代。。如果,脑洞再开大点,每个程序员都有改变世界的潜质。。
走在成为程序员的路上,心潮澎湃呀。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2