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();
}
}
助けていただきありがとうございます。