나는 포트 1002가 열리도록 요구하는 소켓 프로그램을 가지고 있으며이 포트를 자유롭게 사용할 수 있도록 C++에서 포트 포워드하는 방법을 알고 싶다.C++에서 포트 포워드하는 방법?
답변
포트 포워딩은 일반적으로 라우터에서 클라이언트 시스템의 업스트림에서 수행됩니다.
일부 응용 프로그램은 포트를 공개적으로 열기 위해 업스트림 라우터와 통신하기 위해 범용 플러그 앤 플레이를 사용하지만 어떤 방식으로 실행되는지 보려면 많은 연구를해야한다고 생각합니다.
그래서 UPnP 또는 NAT-PMP가 필요합니다. 시스템에 이러한 프로토콜을 수행하기위한 라이브러리가 있거나, 테스트 할 Linux 또는 BSD에서 실행할 서버와 클라이언트 라이브러리가 모두있는 muniupnp을 사용할 수 있습니다.
보장할만한 것은 없으므로 STUN, TURN 또는 ICE를 추가로 사용해야 할 수도 있습니다. 그 일을하기위한 도서관이 있습니다 here.
항상 기억해야 할 때가 있습니다. IPv6를 구현하십시오. 때로는 IPv4가 작동하지 않는 경우에도 작동합니다. 사용자가 v6 및 Teredo를 설치하도록 권장합니다.
Windows XP부터 Microsoft는 UPnP library을 제공합니다. 라이브러리가 네트워크 장치와 통신하는 기본 사항을 제공하기 때문에 실제로 사용하는 것은 상당히 복잡합니다. 포트 전달과 같은 장치 별 작업을 수행하려면 다양한 UPnP specifications을 연구해야합니다. 저를 믿으십시오, 이것은 상대적으로 작은 달성하기 위하여 할 것이다 많은 노력이다; 사용자가 필요한 포트를 전달하기 위해 라우터 매뉴얼을 참고해야 할 수도있는 어딘가에 문서에 넣어 두는 것이 좋습니다. 이것은 거의 모든 사람들이하는 일입니다.
아멘. 매우 어렵습니다. –
UPnP는 프로그래머로서 사용하기가 어렵습니다. 라우터에서 포트 포워드를 성공적으로 구성하는 것이 보통의 "DHCP? IP 주소 란 무엇입니까?" 사용자. NAT와 방화벽은 좋은 사용자 경험에 적대적인 기술의 좋은 예이며, 시스템과 일반 사용자는 둘 다 측면에서 통신하기가 매우 어렵습니다. 알다. –
가장 인기있는 방법은 사용자가 방화벽에서 열어야하는 포트를 알려주는 문서를 작성하는 것입니다.
내 경험에 따르면 사용자가 인터넷에서 포럼 게시물을 검색하여 응용 프로그램이 어떤 인바운드 포트를 사용하는지 알려주는 것이 일반적입니다. –
- 1. c에서 이벤트 기반 직렬 포트 읽기를 수행하는 방법?
- 2. 포트 번호를 변경하는 방법
- 3. 포트 번호가있는 Net_Ping입니다. 방법?
- 4. TCP 포트 바인드 방법
- 5. 는 COM 포트
- 6. 직렬 포트 스니퍼를 감지하는 방법?
- 7. ZXing C# 포트 사용 방법
- 8. 포트 포워딩없이 UDP를 수행하는 방법
- 9. , UDP 포트 스캐닝을 달성하는 방법?
- 10. 다중 UDP 포트
- 11. 포트 풀을 사용하여 포트 스캐닝
- 12. 시리얼 포트 또는 USB 포트?
- 13. C에서 파일을 시작하는 방법
- 14. C에서 URL을 확장하는 방법 #?
- 15. C에서 변수를 설정하는 방법
- 16. C에서 프록시를 추가하는 방법 #
- 17. C에서 문자열을 디코딩하는 방법 #
- 18. Objective-C에서 클래스를로드하는 방법
- 19. C에서 인쇄하는 방법
- 20. C에서 SendInput을 테스트하는 방법
- 21. C에서 # .lnk를 해결하는 방법 #
- 22. C에서 폴더를 암호화하는 방법 #?
- 23. C에서 deserialization을 재정의하는 방법
- 24. C에서 ICU를 시작하는 방법
- 25. C에서 벡터를 생성하는 방법 #
- 26. LinqToSQL을 C에서 최적화하는 방법 #
- 27. C에서 파일을 자르는 방법?
- 28. C에서 비교하는 방법
- 29. C에서 qsort를 구현하는 방법
- 30. C에서 일시 중지하는 방법?
이 프로그램을있는 그대로 사용할 수없는 이유와 "포트 전달"이 문제의 해결책이라고 생각하는 이유를 설명해야합니다. –
전송을 포트 포워드 할 수있는 경우에도 금지 된 포트 또는 사용중인 포트를 벗어날 수 없습니다. 대신 소켓 프로그램 설정을 변경하십시오. – shinkou
이 질문을 읽기에는 다소 무리가 있지만 부정확 할 수 있습니다. "http://linux.die.net/man/1/forward를 Windows에서 컴파일하려고합니다. 그래서 다른 프로그램을 다른 포트를 사용하여 실행할 수 있습니다. 하나는 사용하도록 설계되었습니다. " C++과 어떤 관계가 있는지 확신 할 수 없습니다. – bk1e