我的项目有这个奇怪的问题:
我正在使用套接字,服务器/客户端代码是相同的,它们都使用2个不同的线程(一个发送,一个接收)但是我得到的数据不是我发送的。
发送:
// ...
$TradeURL = urldecode($_POST['TradeURL']);
// ...
接收:
double[] data = new double[3];
// i'm sending this double array, in the actual code it's filled with 3 numbers
byte[] result = new byte[data.Length * sizeof(double)];
Buffer.BlockCopy(data, 0, result, 0, result.Length);
// converting to byte
clientSocket.Send(result);
// at this point, the array size is 24 bytes (the size doesnt change for every time i'm trying to send) and i'm sending it to the client/server.
起初我认为转换为double []时出现了问题,所以我尝试了不同的方法,但它们都给出了相同的结果。
我缺少什么?
答案 0 :(得分:2)
接收返回接收的字节数。如果收到的字节数较少,则需要正确处理。循环直到你收到必要的字节数。以下是sample如何在流的情况下执行此操作,您可以尝试类似的方法。
同样在这种情况下,您需要确保以相同的eindianness发送/接收号码,我希望您已完成。
PS。正如评论中提到的那样,您似乎也没有正确使用Receive
。