2011-02-28 2 views
-1

나는 라우터 IP에서 로컬 IP로 포트 포워딩을하고 싶다. C#을 에 내가 로컬 IP 사용하여 수신이 코드를 가지고나는 포트 포워딩을 C로 만들고 싶다. #

r.Bind(new IPEndPoint(IPAddress.Any, int.Parse(this.textBox2.Text))); 
while (true) 
      { 
       br = new byte[16384]; 
       r.Receive(br); 
       m_Fifo.Write(br, 0, br.Length); 
      } 

곳 BR = 버퍼, TextBox2를 = 로컬 IP를 R 소켓 I이 스레드에서 코드를 사용하여 시도했지만 나는 그들에게 C# Raw Sockets Port Forwarding

+0

더 많은 답변을 수락으로 표시하십시오! – RQDQ

답변

0

를 연결하는 데 실패 포트 포워딩은 라우터 구성 내에서 처리됩니다. 각 포트 전달 규칙은 라우터의 웹 인터페이스, 텔넷/SSH 인터페이스 또는 라우터와 함께 제공되는 다른 소프트웨어를 통해 수동으로 설정해야합니다.

HTTP/텔넷/SSH를 통해 연결하고 규칙을 작성하는 데 필요한 명령을 전달하지 않는 한 C# 응용 프로그램에서 라우터에 포트를 생성하는 일반적인 방법은 없습니다. 나는 이것을하는 것을 권장하지 않는다.

또한 이러한 설정을 변경하면 일부 라우터를 재부팅해야하며 네트워크/인터넷 연결이 완전히 복원되기까지 최대 5 분간 기다려야 할 수도 있습니다.

어느 방법이든 그렇게 할 수 있다고 생각하더라도 C# 응용 프로그램에서 라우터 구성을 변경하는 것은 매우 나쁜 생각 일 수 있습니다.

왜 포트를 전달할 것인지 명확히 할 수 있습니까? 대체 솔루션이있을 수 있습니다.

0

코드가 잘못되었습니다. EOS의 경우 read() 결과를 확인하고 중단하거나 결과를 쓰기 호출에 전달해야합니다. 읽기가 버퍼를 가득 채웠다 고 추측 할 수는 없습니다.

물론 반복마다 새로운 byte [] 버퍼를 할당하는 것은 매우 낭비입니다.