与NetworkComms组件同时监听TCP和UDP

时间:2017-04-18 11:02:28

标签: sockets xamarin tcp xamarin.android networkcomms.net

我有一个Android应用程序,我们正在使用NetworkComms构建出色的网络组件。我发现的一个问题是,现在我想要收听UDP广播以及直接消息,我只看到TCP消息而不是接收UDP消息。

我的服务器代码(简化)

EventLog.Debug(TAG, "Starting message receiver");
DataSerialisation.ConfigureSerialisation();

this.HostAddress = GetIpAddress();
NetworkComms.AppendGlobalIncomingPacketHandler<CameraInfo>("CameraInfo", RegisterCallback);
NetworkComms.AppendGlobalIncomingPacketHandler<UserCheckIn>("UserCheckIn", CheckInCallback);
NetworkComms.AppendGlobalIncomingPacketHandler<CameraImage>("CameraImage", ImageCallback);
NetworkComms.AppendGlobalIncomingPacketHandler<StateChange>("StateChange", StateCallback);

mLocalPort = 8088;
Connection.StartListening(ConnectionType.TCP, new System.Net.IPEndPoint(GetIpAddress(), 8088));

EventLog.Debug(TAG, "Server TCP socket initialised. {0} port: {1}", this.HostAddress.ToString(), mLocalPort);

//Start listening for incoming UDP data as well
Connection.StartListening(ConnectionType.UDP, new IPEndPoint(GetIpAddress(), 10000));

我的客户端每隔几秒就在UDP上传输CameraInfo对象:

private void BroadcastObject(object message) {
    var objectTitle = message.GetType().Name;
    UDPConnection.SendObject(objectTitle, message, new IPEndPoint(IPAddress.Broadcast, 10000));
}

任何人都可以告诉我为什么UDP发送的对象永远不会到达但是TCP发送对象呢?

提前致谢。

0 个答案:

没有答案