gpt4 book ai didi

c# - Java TCP 客户端不接收从 C# 服务器发送的消息

转载 作者:可可西里 更新时间:2023-11-01 02:56:28 24 4
gpt4 key购买 nike

我正在用 c# 编写一个 tcp 服务器,并用 java 编写相应的客户端。我在本地主机上测试连接,客户端能够连接到服务器。但是,当我发送消息时,客户端永远不会收到它们。使用调试器我已验证 stream.Write(...) 已执行。知道问题出在哪里吗?

这是 C# 服务器:

        TcpClient client = (TcpClient)cl;
NetworkStream stream = client.GetStream();

byte[] msg = new byte[512];
int bytesRead;

while (running)
{
while (messages.getCount() > 0)
{
String msg = messages.Take();

if (cmd != null)
{
byte[] bytes = Encoding.UTF8.GetBytes(msg.ToCharArray());

try
{
stream.Write(bytes, 0, bytes.Length);
stream.Flush();
}
catch (Exception e)
{

}
}
}

Thread.Sleep(1000);
}

Java 客户端:

public void run() 
{
try
{
socket = new Socket(address, port);
in = new BufferedReader( new InputStreamReader( socket.getInputStream() ));
out = new PrintWriter(socket.getOutputStream());
running = true;
}
catch (Exception e){
e.printStackTrace();
running = false;
}

String data;
while(running)
{
try
{
data = in.readLine();

if(data != null)
{
processData(data);
}
}
catch (IOException e)
{
e.printStackTrace();

running = false;
break;
}
}

try
{
socket.close();
socket = null;
}
catch (IOException e)
{
e.printStackTrace();
}

running = false;
}

最佳答案

您正在使用 BufferedReader.readLine()。您的消息字符串是否以 CR、LF 或 CR/LF 结尾?

readLine 阻塞,直到读取行终止字符。

关于c# - Java TCP 客户端不接收从 C# 服务器发送的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7861667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com