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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 joure 于 2014-1-6 17:19 编辑

如题:UDP编程:发送端DatagramPacket设置为广播地址192.168.1.255时接收端可以正常接收;设置成LocalHost地址127.0.0.1时也正常,但是当设置成其它IP时接收端就无法接收数据
  1. import java.net.*;
  2. import java.io.*;
  3. class UdpSend2
  4. {
  5. public static void main(String[] args) throws Exception
  6. {
  7. DatagramSocket ds = new DatagramSocket();        //创建发送端
  8. BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));//键盘录入
  9. String line = null;
  10. while ((line=bufr.readLine()) !=null)//阻塞式方法read
  11. {
  12. if("886".equals(line))
  13. break;
  14. byte[] buf = line.getBytes();//字节数组         封包
  15. DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.110"),10086);
  16. ds.send(dp);        //发送
  17. }
  18. ds.close();
  19. }
  20. }
  21. class UdpRec
  22. {
  23. public static void main(String[] args) throws Exception
  24. {
  25. DatagramSocket ds = new DatagramSocket(10086);        //创建接收端
  26. while (true)
  27. {
  28. byte[] buf = new byte[1024];
  29. DatagramPacket dp = new DatagramPacket(buf,buf.length);//将接收的数据封包
  30. ds.receive(dp);//阻塞式方法
  31. String ip = dp.getAddress().getHostAddress();
  32. String data = new String(dp.getData(),0,dp.getLength());
  33. System.out.println(ip+" : "+data);
  34. }
  35. }
  36. }
复制代码
       在TCP编程时也遇到了这种问题,服务端无法接受客户端的数据,等待5秒抛异常Exception in thread "main" java.net.ConnectException: Connection timed out: connect
  1. import java.net.*;
  2. import java.io.*;
  3. class TcpClient
  4. {
  5. public static void main(String[] args) throws Exception
  6. {
  7. Socket s = new Socket("192.168.1.254",10005);
  8. OutputStream out = s.getOutputStream();
  9. out.write("TCP is coming".getBytes());
  10. s.close();
  11. }
  12. }
复制代码
  1. class TcpServer
  2. {
  3. public static void main(String[] args) throws Exception
  4. {
  5. ServerSocket ss = new ServerSocket(10005);
  6. Socket s = ss.accept();        //该阻塞式方法获取到客户端对象
  7. String ip = s.getInetAddress().getHostAddress();
  8. System.out.println(ip+"...connected");

  9. InputStream in = s.getInputStream();
  10. byte[] buf = new byte[1024];
  11. int len = in.read(buf);
  12. System.out.println(new String(buf,0,len));

  13. s.close();        //关闭客户端,节省资源
  14. ss.close();        //关闭服务端(可选)
  15. }
  16. }
复制代码

找来毕老师的源码运行了一下,问题依旧
系统Win7 64位,JDK1.7,防火墙关了
求解决方法,不胜感激!




评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

6 个回复

倒序浏览
没人吗?
回复 使用道具 举报
你查看一下 你的本机IP ,理论上 127.0.0.1 是回环地址
192.168.1.255 是你的本机地址  还有其他地址吗  
回复 使用道具 举报
本帖最后由 joure 于 2014-2-18 19:09 编辑
小骗子 发表于 2014-1-6 20:43
你查看一下 你的本机IP ,理论上 127.0.0.1 是回环地址
192.168.1.255 是你的本机地址  还有其他地址吗   ...

IP地址是自动获取的,默认192.168.1

回复 使用道具 举报
IP问题,自己好好看看吧.
回复 使用道具 举报
何苦似梦离 发表于 2014-2-18 19:01
IP问题,自己好好看看吧.

哥,这时一个多月以前的帖子了,不过还是谢谢了:handshake

PS: 我也是老白的粉

点评

真的阿,哈哈,那看来有同党了  发表于 2014-2-19 07:59
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马