【发布时间】:2017-01-04 14:13:59
【问题描述】:
[已解决]
我与here 的帖子有类似的问题,已遵循所有答案,但得到了空字符串作为响应。
数据。
这是我的代码:
try
{
string ENDOFLINE = "\r\n";
TcpClient client = new TcpClient(txtIP.Text, Int32.Parse(txtPort.Text));
NetworkStream stream = client.GetStream();
byte[] data = Encoding.ASCII.GetBytes(txtMessage.Text + ENDOFLINE);
stream.Write(data, 0, data.Length);
String responseData = String.Empty;
Int32 bytes = stream.Read(data, 0, data.Length);
responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
Console.WriteLine("Received: {0}", responseData);
stream.Close();
client.Close();
}
catch(Exception ex)
{
Console.WriteLine(ex.message);
}
解决方案:
在发送消息后和收到响应之前立即断开连接。我关注了这个article
【问题讨论】:
-
请始终在问题本身中发布代码,而不是通过外部链接,因此如果链接失效,问题不会变得无用。
-
@PeterB,谢谢你的建议,我已经编辑了帖子:)
-
您不能将字节数组从 C# 发送到 Java 和 VV,因为 Java 使用的是 sbyte 而不是 byte ...您应该更改 byte[] data = Encoding.ASCII.GetBytes(txtMessage.Text + ENDOFLINE);
-
@Alrehamy 好的,让我试试你的解决方案。
-
@alrehamy,我无法让它工作,你有样本或者我可以阅读的文章吗?