我的应用程序(服务器/客户端)被阻止后使用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()
是阻塞调用,意味着你的代码执行将被阻塞,除非你收到任何来自服务器通信的线路。
在C#
代码中使用System.Environment.NewLine
而不是'n
来终止行