Я разрабатываю новое программное обеспечение, и мне нужно обмениваться этими приложениями между собой, как TeamViewer и Skype. Для этой задачи я прочитал слишком много статей и написал код, но я не могу этого сделать. Я должен использовать TCP, он не может быть UDP. Безопасность данных очень важна для моего приложения.Сетевое программирование - Приложения Связь
http://www.codeproject.com/Articles/807861/Open-NAT-A-NAT-Traversal-library-for-NET-and-Mono
Я нашел N (etwork) (адрес) Т (ranslation) может решить мою проблему и я использую его. Я пишу тот же код, что они говорят, но до сих пор не работает ...
СЛУШАТЕЛЬ КЛИЕНТ КОДЫ
NatDiscoverer discoverer = new NatDiscoverer();
CancellationTokenSource cts = new CancellationTokenSource(5000);
NatDevice device = await discoverer.DiscoverDeviceAsync(PortMapper.Upnp, cts);
// display the NAT's IP address
Console.WriteLine("The external IP Address is: {0} ", await device.GetExternalIPAsync());
// create a new mapping in the router [external_ip:1702 -> host_machine:1602]
await device.CreatePortMapAsync(new Mapping(Protocol.Tcp, 1602, 1702, "For testing"));
IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, 1602);
socket = new Socket(endPoint.AddressFamily, SocketType.Stream,ProtocolType.Tcp);
socket.SetIPProtectionLevel(IPProtectionLevel.Unrestricted);
socket.Bind(endPoint);
socket.Listen(4);
ЗАПРОС ОТПРАВИТЕЛЯ КЛИЕНТ КОДЫ
Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("100.96.106.192"), 1602);
sock.Connect(ipep);
Они являются 2 клиент, и я хочу их обойти. «100.96.106.192» компьютерно Public IP (не маршрутизатор (внешний) IP) ..
Для этой задачи, я могу использовать другие языки или другие библиотеки тоже кроме WCF, потому что мое приложение нужно работать платформу самостоятельно.
Например, я начинаю прослушивать клиент и в 'cmd', я пишу 'netstat -a', и я видел, он слушает 0.0.0.0:1602. Но почему?
Пожалуйста, помогите мне и проведите меня. Что случилось с моим кодом? Что я делаю не так? Как я могу решить эту проблему?
Спасибо за все ответы и помощь. Хороший день, хорошие работы ...
Но то, что нужно писать там? Когда я пишу «100.96.106.192» (общедоступный IP-адрес ПК), он выдает ошибку. –