A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 草上飞 中级黑马   /  2012-11-8 19:12  /  2457 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.io.*;
import java.net.*;
class Send implements Runnable
{
private DatagramSocket ds;
public Send(DatagramSocket ds)
{
  this.ds=ds;
}
public void run()
{
  try
  {
   BufferedReader br=
   new BufferedReader(new InputStreamReader(System.in));
   String line=null;
   while ((line=br.readLine())!=null)
   {
    if("886".equals(line))
     break;
    byte[] by=(line).getBytes();
    DatagramPacket dp=
     new DatagramPacket(by,by.length,InetAddress.getByName("192.168.2.255"),2000);//255是表示赋给192.168.2.这个局域内的 所有主机
    ds.send(dp);
   }
  }
  catch (Exception e)
  {
   throw new RuntimeException("发送失败!");
  }

}

}
class Receive implements Runnable
{
private DatagramSocket ds;
public Receive(DatagramSocket ds)
{
  this.ds=ds;
}
public void run()
{
  try
  {
   while (true)
   {byte[] by=new byte[1024];
   DatagramPacket dp=new DatagramPacket(by,by.length);//创建一个接收by.length的数据包
   ds.receive(dp);//将ds接收到的 数据存入dp包中
   String data=new String(dp.getData(),0,dp.getLength());//获取接收到的数据
   String ip=dp.getAddress().getHostAddress();//获取ip
   System.out.println(ip+"::  "+data);  
   }
   
  }
  catch (Exception e)
  {
   throw new RuntimeException("接收失败!");
  }
}
}
class Udpthread
{
public static void main(String[] args) throws Exception
{
  DatagramSocket send=new DatagramSocket();
  DatagramSocket receive=new DatagramSocket(2000);
  new Thread(new Send(send)).start();//创建发信息线程
  new Thread(new Receive(receive)).start();//创建收信息线程
}
}

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马