我有一个我们正在使用 NetworkComms 强大的网络组件构建的 android 应用程序。我发现的一个问题是,现在我想收听 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 发送的对象会?
提前致谢。