当前位置:  技术问答>java相关

急!帮忙看看错在哪里?

    来源: 互联网  发布时间:2015-05-11

    本文导语:  诸兄:     小弟在编一个通信服务器程序,结果总抛出错误,请指教。(线程run方法如下)   public  void  run()    {     String  msg=null;     String  userName=null;     String  password=null;     try     {     ...

诸兄:
    小弟在编一个通信服务器程序,结果总抛出错误,请指教。(线程run方法如下) 

 public  void  run() 
  {
    String  msg=null;
    String  userName=null;
    String  password=null;
    try
    {
      while(true)
      {
        Socket  socket=serverSocket.accept();
        inStream=new DataInputStream(socket.getInputStream());
        outStream=new DataOutputStream(socket.getOutputStream());
        ......
       }
    }
    catch(Exception  e)
    {
      System.out.println("ERR:RUN sever" );
      System.out.println(e.toString()");
    }
 }


  错误提示如下:
 ERR:RUN sever
java.net.SocketException: Socket closed

|
是不是循环的时候实例化了很多个Socket对象的缘故呀

      while(true)
      {
        Socket  socket=serverSocket.accept();
        inStream=new DataInputStream(socket.getInputStream());
        outStream=new DataOutputStream(socket.getOutputStream());
        ......
       }

|
你应该把accept拿到每道线程的死循环外面来:
这是一个单线程的例子:
  public void listenSocket(){

    try{
      server = new ServerSocket(7456); 
      client = server.accept();
    } catch (IOException e) {
      System.out.println(e.toString());
      System.exit(-1);
    }

    try{
      in = new BufferedReader(new InputStreamReader(client.getInputStream()));
      out = new PrintWriter(client.getOutputStream(), true);
    } catch (IOException e) {
      System.out.println("Accept failed: 7456");
      System.exit(-1);
    }
//accept应该在while外面
    while(true){
      try{
        line = in.readLine();
//Send data back to client
        out.println(line);
      } catch (IOException e) {
        System.out.println("Read failed");
        System.exit(-1);
      }
    }
  }

|
你需要建立一个与客户的ServerConn。

|
每ServerSocket接收到一个连接(Socket)新建一个线程,同时把连接好的Socket当作参数传给线程实例,也就是把Socket当作构造方法的参数。

    
 
 

您可能感兴趣的文章:

  • 关于全选的问题大家帮忙看看~
  • 我的Solaris启动不了了,请帮忙看看
  • iptables规则问题,请大家帮忙看看怎么回事
  • 各位帮忙看看网络配置问题
  • 大家帮忙看看错误如何解决
  • 高手帮忙看看cr3的值
  • 虚拟机扩容失败,下面提示的错误,帮忙看看
  • 才鸟问题,请帮忙看看
  • 那位朋友帮忙看看这是什么意思?多谢
  • 大吓帮忙看看?
  • 帮忙看看下面错误,怎样解决!!!
  • 一个200分的问题,大家帮忙看看:)谢了!关于Linux-PAM的
  • 一个shell的小问题,大家帮忙看看啊!
  • 请帮忙看看。
  • 请大家帮忙看看,编译内核后无法挂载root fs, 机器无法启动
  • 帮忙看看这是个什么错误啊?
  • 帮忙给个意见看看。
  • 大家帮忙看看,是什么问题
  • 在浏览器里连接本机的菜鸟问题,帮忙看看!
  • 请帮忙看看!!!!!!!!!!!!!!!!!!!!!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 努力努力再努力,帮忙帮忙来帮忙!
  • 在servlet中有一个关于单引号输出的问题,请大家帮忙,帮忙,帮帮忙!!
  • 小问题,你一定能够帮忙!——菜鸟请求帮忙!!
  • 帮忙帮忙如何设置变量pathclass
  • 没人帮忙吗?我想用JAVA编一个像WINDOW中的画图软件,现在出现了如下问题,请各位老哥老姐帮帮忙
  • 帮帮忙!SCO OpenServer 5.0.5 的root用户口令丢了,怎么找回来啊,帮帮忙!!!!!!
  • 我用smartupload组件遇到问题了,请帮忙!!
  • webmail问题,请高手帮忙!!!谁会使用IMP 3.0????!!!
  • 脚本问题,帮忙
  • 高手帮忙解释
  • 求教求教,shell问题...各位大哥,帮忙下
  • 关于程序移植,请知道的帮忙,分会加的
  • DELL服务器,安装RedHat EAS3.0,装完了,连不上SSH。。。。。哪位大虾帮忙!!急啊 !!!!
  • 关于聊天室的若干疑问!!!请各位大虾帮忙!
  • 有个问题?请帮忙!
  • 请求各位帮忙,关于绘制图像
  • 帮忙找个工作。
  • 请帮忙推荐几个下载java电子书的网站,35分献上!
  • 我怎么不能编译servlet?请帮忙!!!谢谢!!!
  • 请问谁有weblogic6.1sp1的crack??大大加分!!请多帮忙!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3