【发布时间】:2015-09-29 17:51:46
【问题描述】:
演示
https://github.com/mingchaoyan/chat
如果将 BroadcastClient.cs 中的 SendMsg 更改为
void Send1(string inputString1) {
Proto.BroadcastProto proto = new Proto.BroadcastProto();
proto.userName = "Client";
proto.stringMsg =inputString1;
NetPacket p = new NetPacket();
p.BeginWrite("OnRevMsg");
p.WriteObject<Proto.BroadcastProto>(proto);
p.EncodeHeader();
networkManager.Send(p);
inputString = "";
}
void SendMsg() {
Send1 ("1");
Send1 ("22");
Send1 ("333");
Send1 ("4444");
Send1 ("55555");
Send1 ("666666");
Send1 ("7777777");
Send1 ("88888888");
}
是的,一次发送多个消息,而不是像以前那样发送一个接收一个。
然后你会发现OnRevMsg中的Debug.log几乎打印出来了
"88888888"
8 次。
我调试socket发现NetworkManager.packets的元素(这是一个队列)每次收到新的msg时都会改变为新收到的!
我从套接字接收数据有什么问题吗?
【问题讨论】:
-
BeginWrite 是否有匹配的 EndWrite?
-
@RonBeyer 不,我认为这就足够了