저는 새로운 소프트웨어를 개발 중이며 TeamViewer 및 Skype와 같은 응용 프로그램 사이에서 통신해야합니다. 이 도전에 대해, 나는 너무 많은 기사를 읽고 코드를 작성하지만 나는 그것을 할 수 없다. TCP를 사용해야합니다. UDP가 될 수 없습니다. 데이터 안전은 앱에서 매우 중요합니다. 네트워크 프로그래밍 - 응용 프로그램 통신
http://www.codeproject.com/Articles/807861/Open-NAT-A-NAT-Traversal-library-for-NET-and-Mono
내가 발견 N (네 트워크) (주소) T (ranslation이) 내 문제를 해결할 수 있습니다 내가 그것을 사용할 수 있습니다. 나는LISTENER CLIENT CODES
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);
요청 SENDER CLIENT CODES
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는"컴퓨터 공공 IP (라우터가 아닌 (외부) IP) 내 응용 프로그램이 독립적으로플랫폼을 작동해야하기 때문에 ..이 문제에 대한
, 나는 WCF 제외하고는 너무 다른 언어 또는 다른 라이브러리를 사용할 수 있습니다.
예를 들어 Listener Client를 시작하고 'cmd'에 'netstat -a'라고 쓰면 나는 0.0.0.0:1602를 듣습니다. 하지만 왜?
도와주세요. 내 코드가 뭐가 잘못 됐어? 내가 도대체 뭘 잘못하고있는 겁니까? 이 문제를 어떻게 해결할 수 있습니까?
모든 답변과 도움에 감사드립니다. 좋은 하루 되세요, 좋은 작품 ...
그러나이 쓸 필요가 뭐? "100.96.106.192"(PC Public IP)라고 쓰면 오류가 발생합니다. –