111,097
社区成员




void ControllerTCPComunication(object obj)
{
Socket socket = (Socket)obj;
while(true){
byte[] data = new byte[16384];
var len = socket.Receive(data);
处理解析收到的数据(data, len);
}
}
这才是正确的模式。那么当解析到确实接收到了一个完整的信息,假设需要返回,在处理解析的部分去随时可以 Send 返回数据;但是假设没有收到完整的数据包,不能解析和执行,就不会 Send 返回值。
而你的程序,只 Receive,不解析,就莫名其妙地不知从哪里找来数据 Send 数据,可以说编程流程完全相反。完全不可理解。除非你说你贴错了代码了,少写了多少调代码,否则这个代码可以证明你们有一大堆诡异的代码在另外做一些事情,才会有这种诡异的流程。[/quote]
解析肯定是有的 解析过程中的校验,分包操作等等都不会少,只是我觉得问一个技术性的问题没有必要把冗长的解析代码贴出来罢了,何况我贴代码的时候也明确了“大概”这个意思。 void ControllerTCPComunication(object obj)
{
Socket socket = (Socket)obj;
while(true){
byte[] data = new byte[16384];
var len = socket.Receive(data);
处理解析收到的数据(data, len);
}
}
这才是正确的模式。那么当解析到确实接收到了一个完整的信息,假设需要返回,在处理解析的部分去随时可以 Send 返回数据;但是假设没有收到完整的数据包,不能解析和执行,就不会 Send 返回值。
而你的程序,只 Receive,不解析,就莫名其妙地不知从哪里找来数据 Send 数据,可以说编程流程完全相反。完全不可理解。除非你说你贴错了代码了,少写了多少调代码,否则这个代码可以证明你们有一大堆诡异的代码在另外做一些事情,才会有这种诡异的流程。