|
@@ -214,12 +214,25 @@ namespace UdPunching.ExampleW
|
|
break;
|
|
break;
|
|
|
|
|
|
case ExchangeMessageId.PeerKnockAckRelay:
|
|
case ExchangeMessageId.PeerKnockAckRelay:
|
|
|
|
+ if (false == msg.PeerId.HasValue)
|
|
|
|
+ {
|
|
|
|
+ Log($"INVALID RESPONSE {msg.Id} was IGNORED: peer id is required");
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+
|
|
Log($"KNOCK SUCCESS by {msg.PeerId} peer endpont is {msg.PeerEndPoint}");
|
|
Log($"KNOCK SUCCESS by {msg.PeerId} peer endpont is {msg.PeerEndPoint}");
|
|
Invoke(new Action(() =>
|
|
Invoke(new Action(() =>
|
|
{
|
|
{
|
|
SendToEndPointTextBox.Text = msg.PeerEndPoint.ToString();
|
|
SendToEndPointTextBox.Text = msg.PeerEndPoint.ToString();
|
|
SendButton.Enabled = true;
|
|
SendButton.Enabled = true;
|
|
}));
|
|
}));
|
|
|
|
+
|
|
|
|
+ {
|
|
|
|
+ Log($"SENDING CONNECTION REQ to {msg.PeerId} @ {msg.PeerEndPoint}");
|
|
|
|
+ var connMsg = new ExchangeMessage(ExchangeMessageId.PeerKnockConnectionReq);
|
|
|
|
+ var connMsgBytes = TransferCodec.Encode(_peerKeyRegister[msg.PeerId.Value], _localId, connMsg.ToBytes());
|
|
|
|
+ _localSocket.SendTo(connMsgBytes, msg.PeerEndPoint);
|
|
|
|
+ }
|
|
break;
|
|
break;
|
|
|
|
|
|
case ExchangeMessageId.PeerKnockAckRelayed:
|
|
case ExchangeMessageId.PeerKnockAckRelayed:
|
|
@@ -227,7 +240,7 @@ namespace UdPunching.ExampleW
|
|
break;
|
|
break;
|
|
|
|
|
|
case ExchangeMessageId.PeerKnockReqErrPeerNoAvailable:
|
|
case ExchangeMessageId.PeerKnockReqErrPeerNoAvailable:
|
|
- Log($"KNOCK FAIL:{msg.Id} {msg.PeerId}");
|
|
|
|
|
|
+ Log($"KNOCK FAIL: {msg.PeerId}");
|
|
break;
|
|
break;
|
|
|
|
|
|
case ExchangeMessageId.PeerKnockReqRelayed:
|
|
case ExchangeMessageId.PeerKnockReqRelayed:
|
|
@@ -273,10 +286,12 @@ namespace UdPunching.ExampleW
|
|
Log($"DATA FROM {peerId}:{payloadString}");
|
|
Log($"DATA FROM {peerId}:{payloadString}");
|
|
reply.PayloadBytes = payloadString.Length.ToLeInt16Bytes();
|
|
reply.PayloadBytes = payloadString.Length.ToLeInt16Bytes();
|
|
break;
|
|
break;
|
|
|
|
+
|
|
case ExchangeMessageId.DataTransferAck:
|
|
case ExchangeMessageId.DataTransferAck:
|
|
Log($"DATA ACK LEN:{msg.PayloadBytes.ReadLeInt16()} FROM {peerId}");
|
|
Log($"DATA ACK LEN:{msg.PayloadBytes.ReadLeInt16()} FROM {peerId}");
|
|
|
|
|
|
return;
|
|
return;
|
|
|
|
+
|
|
default:
|
|
default:
|
|
Log($"RECV {msg.Id} FROM {peerId} @ {_saeReceive.RemoteEndPoint}");
|
|
Log($"RECV {msg.Id} FROM {peerId} @ {_saeReceive.RemoteEndPoint}");
|
|
return;
|
|
return;
|