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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张然龙 金牌黑马   /  2014-5-26 21:33  /  4706 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张然龙 于 2014-5-27 13:58 编辑

为什么我收不到自己发的信息呢?  是哪里错了吗?而且等待时间长了就直接报错....


  1. class Shuchu implements Runnable
  2. {
  3.         public void run()
  4.         {
  5.                 try
  6.                 {
  7.                         ServerSocket s1=new ServerSocket(10000);
  8.                         Socket s=s1.accept();
  9.                         InputStream in=s.getInputStream();
  10.                         byte []b=new byte[1024];
  11.                         int len=in.read(b);
  12.                         System.out.println(new String(b,0,len));
  13.                         s1.close();
  14.                 }
  15.                 catch (Exception e)
  16.                 {
  17.                         e.printStackTrace();
  18.                 }
  19.         }
  20. }

  21. class Shuru  implements Runnable
  22. {
  23.         public void run()
  24.         {
  25.                 try
  26.                 {
  27.                         Socket s=new Socket("192.168.1.254",10000);
  28.                         OutputStream o=s.getOutputStream();
  29.                         o.write("哈哈哈".getBytes());
  30.                         s.close();
  31.                 }
  32.                 catch (Exception e)
  33.                 {
  34.                         e.printStackTrace();
  35.                 }
  36.         }
  37. }
  38. public class Demo3
  39. {
  40.         public static void main(String args[])throws Exception
  41.         {
  42.                
  43.                 new Thread(new Shuchu()).start();
  44.                 Thread.sleep(100);
  45.                 new Thread(new Shuru()).start();
  46.         }
  47. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黑妞~ + 1

查看全部评分

14 个回复

倒序浏览
和毕老师写的一样的啊....
回复 使用道具 举报
问题就是你写的和毕老师一模一样,我将你的  Socket s=new Socket("192.168.1.254",10000);
改成了                               
                                  InetAddress ia = InetAddress.getLocalHost();
                       
                                       Socket s=new Socket(ia,10000);


是能正常运行的。
毕老师敲的是他电脑的ip,而你的ip肯定和毕老师不一样。
回复 使用道具 举报 1 0
没有问题,你 分两个main函数来运行,要不就是你的IP地址出的问题
回复 使用道具 举报
wuhyoung 发表于 2014-5-26 22:03
问题就是你写的和毕老师一模一样,我将你的  Socket s=new Socket("192.168.1.254",10000);
改成了         ...

谢谢你的答案哈, 用你的代码成功了,但是让我不解,毕老师说过,"192.168.1.254"是广域IP地址段,也就是说192.168.1.1-192.168.1.254这个IP端的所有人都是可以收到的...而且毕老师的IP也不是254结尾的,是和我一样的104啊..
回复 使用道具 举报
昨天用自己的IP死活就是报错, 睡一觉电脑重启就好了,ip还是192.168.1.104......:Q什么情况!!!!!
回复 使用道具 举报
wuhyoung 发表于 2014-5-26 22:03
问题就是你写的和毕老师一模一样,我将你的  Socket s=new Socket("192.168.1.254",10000);
改成了         ...

同意你的说法,肯定是你的IP的问题,你的连接是面向连接的,就像两个人单独通话一样,192.168.1.254这个地址表示就是一个IP地址,你既然是在一台电脑上运行,也可以修改为"127.0.0.1",这个地址表示本机的IP地址,任何时间都不会错,TCP是没有广播的概念的
回复 使用道具 举报
张然龙 发表于 2014-5-27 09:01
谢谢你的答案哈, 用你的代码成功了,但是让我不解,毕老师说过,"192.168.1.254"是广域IP地址段,也就是说192 ...

广播地址是192.168.1.255,自己的ip地址是127.0.0.1,你自己设置了ip地址吗,如果你没有设置过IP地址的话每次开启电脑都会自动获取ip地址,每次获取的地址是不一样的。
回复 使用道具 举报
wuhyoung 发表于 2014-5-27 09:36
广播地址是192.168.1.255,自己的ip地址是127.0.0.1,你自己设置了ip地址吗,如果你没有设置过IP地址的话 ...

我用的路由器锁定IP  永远都是104.....广播IP是255...我记错了....?   谢啦兄弟 明白了我一会用255试一下
回复 使用道具 举报
张然龙 发表于 2014-5-27 09:46
我用的路由器锁定IP  永远都是104.....广播IP是255...我记错了....?   谢啦兄弟 明白了我一会用255试一下 ...

没事,我也一直在学习,有问题大家一起讨论嘛
回复 使用道具 举报
题目我没认真看 大把的人回答了  不过用自己的IP   你们不写localhost的吗  
回复 使用道具 举报
27ZJQ 来自手机 中级黑马 2014-5-31 23:24:36
12#
学习了。
回复 使用道具 举报
已经很厉害了,有些可能是缓存的问题。
回复 使用道具 举报
atyzy 初级黑马 2016-12-22 17:23:24
14#
学习了,谢谢!!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马