我正在尝试将一个字节数组从 java 发送到 c#,然后将另一个字节数组从 c# 发送到 java
字节数组的流程如下 Java -> c# Java <- c#
我可以让 send java -> c# 正常工作,但是当我尝试 send c# -> 它只是挂起。我已经尝试了几乎所有可以在网上找到的东西,但一直得到相同的结果。如果我将 java 注释掉到 c# 发送,那么 java 和 c# 都可以正常工作,但是一旦我尝试从 java 发送到 c#,java 和 c# 都会坐在各自的读取和发送行。
public void test()
{
//1. READ
System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
string input = enc.GetString(ReadNetworkStream(netStream));
Console.WriteLine(DecryptData(input, ""));
//2. SEND
string output = "This is the c# client!!!";
sendNetworkStream(output, netStream);
}
private void sendNetworkStream(string infoToSend, NetworkStream netStream)
{
UTF8Encoding encoding = new UTF8Encoding();
byte[] byteDataToSend = encoding.GetBytes(infoToSend);
Console.WriteLine(netStream.CanWrite);
Console.WriteLine(byteDataToSend.Length);
netStream.Write(byteDataToSend, 0, byteDataToSend.Length);
netStream.Flush();
}
private static byte[] ReadNetworkStream(NetworkStream netStream)
{
byte[] buffer = new byte[1024];
using (MemoryStream ms = new MemoryStream())
{
int read;
while ((read = netStream.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
return ms.ToArray();
}
}
我感谢任何帮助,谢谢。