我的应用程序(服务器/客户端)被阻止后使用Readline

本文关键字:Readline 应用程序 服务器 客户端 我的 | 更新日期: 2023-09-27 18:14:44

我试图在服务器和客户端之间建立tcp连接。服务器端用c#编程,客户端用java编程。服务器工作正常…我的问题是在这个代码:

try {
  InetAddress address = InetAddress.getByName("127.0.0.1");
  connection = new Socket(address, port);        
  BufferedReader inFromServer = new BufferedReader(
         new InputStreamReader(connection.getInputStream()));
  loginInfo = inFromServer.readLine();
  System.out.println("username/pass are  received");
  System.out.println(loginInfo);
  connection.close();
} catch (IOException f) {
  System.out.println("IOException: " + f);
} catch (Exception g) {
  System.out.println("Exception: " + g);
}

应用程序被阻止了,我不能再关闭它了…直到我从Java完成调试。我猜问题是在loginInfo,因为我没有得到用户名/通行证的输出。有什么帮助吗?

这是从c#发送消息的线程:

Thread listener_service = new Thread((ThreadStart)delegate
{
  listener.Start();
  while (true)
  {
    s = listener.AcceptSocket();
    Console.WriteLine("Connected to !" + s.RemoteEndPoint);
    ASCIIEncoding asen = new ASCIIEncoding();
    s.Send(asen.GetBytes("The string was recieved by the server. 'n"));
    Console.WriteLine("'nSent Acknowledgement");
    continue;
  }
});

我的应用程序(服务器/客户端)被阻止后使用Readline

调用readLine()是阻塞调用,意味着你的代码执行将被阻塞,除非你收到任何来自服务器通信的线路。

C#代码中使用System.Environment.NewLine而不是'n来终止行