#c# #stun #turn #coturn #rfc5766turnserver
Вопрос:
m create a coturn server and check it by TrickleICE https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/ . Its work. Now i want to write simple client. I
Я подключаюсь к серверу с помощью UDP-клиента:
udpClient = new UdpClient();
IPAddress ipAddress = IPAddress.Parse(IpAddress);
ipEndPoint = new IPEndPoint(ipAddress, Port);
try
{
udpClient.Connect(ipEndPoint);
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
Затем я создаю массивы байтов заголовка и атрибутов, как описано здесь: https://datatracker.ietf.org/doc/html/rfc5766
Пример создания заголовка:
byte[] header = new byte[20];
byte[] messageT = BitConverter.GetBytes((Int16)messageType);
byte[] messageLength;
messageLength = BitConverter.GetBytes((Int16)attributeLength);
byte[] TransactionId = MyTransactionByteArray
messageT.CopyTo(header, 0);
messageLength.CopyTo(header, 2);
TransactionId.CopyTo(header, 4);
Когда я отправляю заголовок без каких-либо атак по протоколу stun (https://datatracker.ietf.org/doc/html/rfc3489#section-11.1) в журналах сервера говорится:
handle_udp_packet: New UDP endpoint: local addr 0.0.0.0:10000, remote addr "myip":"port"
Wrong OLD STUN message received
С атрибутами(как здесь: https://datatracker.ietf.org/doc/html/rfc5766#section-16):
handle_udp_packet: New UDP endpoint: local addr 0.0.0.0:10000, remote
addr "myip":"port"
И я не получаю никакого ответа.
IPEndPoint ip = null;
byte []msg = udpClient.Receive(ref ip);
Где я ошибся?
Ответ №1:
ОК. просто используйте этот заголовок из новейшего протокола оглушения: https://datatracker.ietf.org/doc/html/rfc5389