Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的多线程TCP服务器不响应C中的TCP客户端_Java_C_Multithreading_Tcpclient_Tcpserver - Fatal编程技术网

Java中的多线程TCP服务器不响应C中的TCP客户端

Java中的多线程TCP服务器不响应C中的TCP客户端,java,c,multithreading,tcpclient,tcpserver,Java,C,Multithreading,Tcpclient,Tcpserver,我正在尝试用Java测试一个多线程TCP MuxServer,其中一个TCP客户端用C编码。下面是管理与客户端通信的部分的代码: class Echo_TCP_Thread extends Thread { Socket Sock_Thr; public Echo_TCP_Thread (Socket The_Socket) { this.Sock_Thr = The_Socket; } public void run() { tr

我正在尝试用Java测试一个多线程TCP MuxServer,其中一个TCP客户端用C编码。下面是管理与客户端通信的部分的代码:

class Echo_TCP_Thread extends Thread
{
  Socket Sock_Thr;

  public Echo_TCP_Thread (Socket The_Socket)
    {
      this.Sock_Thr = The_Socket;
    }

  public void run()
    {
      try 
    {
      PrintWriter output  = new PrintWriter(Sock_Thr.getOutputStream());
          InputStreamReader input = new InputStreamReader(Sock_Thr.getInputStream());
      BufferedReader binput  = new BufferedReader(input);
      //
      System.out.println ("Test 1"); //This message is displayed
      //

      String temp;

      while ((temp=binput.readLine()) != null)
        {
//
      System.out.println ("Test 2"); //This message is not displayed
//
          output.print(this.getName() + " answer -> ");
          output.println(temp);
          output.flush();
      System.out.println ("Child Server : " + Thread.currentThread()  
            + " has received"  + temp);

        }   
    }
      catch (Exception e)
    {
      return;
    }
      finally
    {
      try 
        {
          Sock_Thr.close();
              System.out.println 
        ("Child Server " + Thread.currentThread()  + " : End !!! ");
      } 
      catch (IOException e)
        {
        }
    }
    }
}

即使我获得了连接,并且当我完成通信时结束消息显示在客户机中,客户机也不会从服务器接收回显消息。我已使用
测试
消息检查程序在((temp=binput.readLine())!=null)
循环时没有进入
,但连接到服务器后立即显示消息
测试1
。我应该编写什么代码来更正此问题?

这将是“等待对等方未发送的新行”。客户端和服务器之间的通信协议是什么?@Raedwald,这是Telnet。@MartinJames,
while((temp=binput.readLine())!=null)
条件重复迭代,只要客户端没有发送
null
字符?我不清楚为什么这个条件似乎不起作用…readLine()在收到一行之前不会返回-这是一个阻塞读取。行以换行符(或回车符、换行符)终止。无LF,无readLine()返回。这将是“等待对等方未发送的新行”。客户端和服务器之间的通信协议是什么?@Raedwald,这是Telnet。@MartinJames,
while((temp=binput.readLine())!=null)
条件重复迭代,只要客户端没有发送
null
字符?我不清楚为什么这个条件似乎不起作用…readLine()在收到一行之前不会返回-这是一个阻塞读取。行以换行符(或回车符、换行符)终止。没有LF,没有readLine()返回。