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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘策 中级黑马   /  2013-3-29 21:31  /  1515 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘策 于 2013-3-30 13:13 编辑

  1. <p> </p>
复制代码
package day13;
import java.io.*;
import java.net.*;
class Demo{
public static void main(String[] args) throws Exception{
  ServerSocket ss = new ServerSocket(10086);
  Socket s = ss.accept();
new Thread(new Rece(s)).start();
  new Thread(new Test(s)).start();
  s.close();
  ss.close();
}
}
class Rece implements Runnable{
private Socket s;
  
Rece(Socket s){
  this.s = s;
}
public void run(){
  try{
   System.out.println("haha");
   String ip = s.getInetAddress().getHostAddress();
     BufferedReader bufin =
     new BufferedReader(new InputStreamReader( s.getInputStream()));
  System.out.println(ip+"..........connected");
  //byte[] buf = new byte[1024];
  //int len = 0;
  String data = null;
  while((data=bufin.readLine()) !=null){
   System.out.println(data);
  }
  }
  catch(Exception e){
   throw new RuntimeException("YYYYYNNNNNOOOO" );
  }
}
}
class Test implements Runnable{
private Socket s;
Test(Socket s){
  this.s = s;  
}
public void run(){
  try{
    String ip = s.getInetAddress().getHostAddress();
    BufferedReader bufr =
   new BufferedReader(new InputStreamReader(System.in));
   PrintWriter pw = new PrintWriter(s.getOutputStream());
   String str = null;
    while((str=bufr.readLine()) !=null)
  {
   System.out.println("我:"+str);
   if("886".equals(str))
    break;
   pw.println(str);
   System.out.println("数据已经发出");
  }
  bufr.close();
  s.close();
  }
  catch(Exception e){
   throw new RuntimeException("NoNONON" );
  }
}
}
写的不怎么好,希望能帮忙找一下原因。谢谢呀!

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

4 个回复

倒序浏览



表面上看是类的名称错误,其实更有可能是classpath环境变量没有配置好。
建议复查类的名称包括大小写,如果有包的情况下,注意类文件放的位置。

环境变量classpath配置中有没有小数点“.”,有没有java默认类库的位置,有没有你自己的类文件顶层目录等。


点评

图片不显示哦亲~  发表于 2013-3-30 13:37

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
1.可能你的端口号被占用了,2.在Rece类里流没有关闭

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
PrintWriter中的构造函数没有加入true,我就找到了这一个问题,可是还是不行呀,我又分别进行了一下try说明我的输入流有问题,可是我看着好呢呀,为什么呀,我的想法是这样的,Rece类是用来接受客户端发来的数据 ,而Test则是用来键盘录入将数据发送过去,可是一运行就挂,伤心。。。。。。
回复 使用道具 举报
李海鹏 发表于 2013-3-30 12:33
1.可能你的端口号被占用了,2.在Rece类里流没有关闭

好的,谢谢你,我找到了原因,是因为端口被占用了,呵呵,可能 是昨天用这个号用得太多了吧,哈哈,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马