黑马程序员技术交流社区

标题: 求教:关于UDP聊天程序 [打印本页]

作者: qiaozengji668    时间: 2015-8-18 03:44
标题: 求教:关于UDP聊天程序
  1. import java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3. import java.net.DatagramPacket;
  4. import java.net.DatagramSocket;
  5. import java.net.InetAddress;
  6. import java.net.SocketException;

  7. public class Socket{

  8.         public static void main(String[] args) throws SocketException {
  9.                
  10.                 DatagramSocket send = new DatagramSocket();
  11.                 DatagramSocket rece = new DatagramSocket(11011);
  12.                 new Thread(new SendSocket(send)).start();
  13.                 new Thread(new ReceSocket(rece)).start();
  14.         }

  15. }
  16. class SendSocket implements Runnable {
  17.         DatagramSocket ds;
  18.         SendSocket(DatagramSocket ds){
  19.                 this.ds = ds;
  20.         }
  21.         public void run(){
  22.                 try {
  23.                         BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
  24.                         String line = null;
  25.                         while((line =bufr.readLine())!= null){
  26.                                 if("886".equals(line))
  27.                                         break;
  28.                                 byte [] buf = line.getBytes();
  29.                                 DatagramPacket dp = new DatagramPacket(buf, buf.length,InetAddress.getByName("172.17.55.107"),11011);
  30.                                 ds.send(dp);
  31.                         }
  32.                 }
  33.                 catch (Exception e) {
  34.                         throw new RuntimeException("发送端失败");
  35.                 }
  36.                 finally {
  37.                         ds.close();
  38.                 }
  39.         }
  40. }
  41. class ReceSocket implements Runnable{
  42.         DatagramSocket ds;
  43.         ReceSocket(DatagramSocket ds){
  44.                 this.ds = ds;
  45.         }
  46.         public void run(){
  47.                 try {
  48.                         while(true){
  49.                                 byte [] buf = new byte [1024];
  50.                                 DatagramPacket dp = new DatagramPacket(buf, buf.length);
  51.                                 ds.receive(dp);
  52.                                 String ip = dp.getAddress().getHostAddress();
  53.                                 String data = new String(dp.getData(),0,dp.getLength());
  54.                                 System.out.println(ip+"..."+data);
  55.                         }
  56.                 } catch (Exception e) {
  57.                         throw new RuntimeException("接收端失败");
  58.                 }
  59.         }
  60. }
复制代码

此程序有何问题,使用DOS命令行,怎样才能收到数据???
作者: kevin986745    时间: 2015-8-18 08:33
看不懂、、、、、
作者: kenfans    时间: 2015-8-18 09:56
汗,你运行一下不就知道了
作者: 求学之路    时间: 2015-8-18 10:26
复杂的样子,小白一枚
作者: fmi110    时间: 2015-8-18 10:27
你看一下 ip地址呢  如果接的路由器的话  感觉"172.17.55.107"这个ip不对啊 这个是网关地址吧
主机地址应该是192开头
作者: qiaozengji668    时间: 2015-8-21 05:09
fmi110 发表于 2015-8-18 10:27
你看一下 ip地址呢  如果接的路由器的话  感觉"172.17.55.107"这个ip不对啊 这个是网关地址吧
主机地址应该 ...

谢谢,第一次获取自己的IP是这个,其他程序可以使用,
然后又获一次自己的IP,最后一段变了,
我表示很无奈{:2_39:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2