2010-02-23 4 views
0

소켓에서 프로젝트를 수행하고 있습니다. 보통 서버가 특정 포트에서 수신 대기하고 클라이언트가 포트에 연결 한 다음 보내고 받아야합니다. 그러나 지정하지 않습니다. 클라이언트 측의 모든 포트 번호가 있지만 클라이언트 측에서 포트를 사용하는 상황에서이 포트를 통해서만 메시지가 server.how에 전달됩니다.특정 클라이언트 포트를 통해 메시지 보내기

클라이언트 측에서 포트를 제한하고 있으므로 유효한 무료 포트를 사용하려면 OS 대신 클라이언트 프로그램에서 설정해야합니다.이 포트는 내 문제입니다.

+0

일반적으로 클라이언트 포트는 중요하지 않으며 OS에 의해 할당됩니다. "이 포트를 통해서만 메시지가 클라이언트에게 전달됩니다"문장을 명확하게 할 수 있습니까? 이것은 "클라이언트"의 소켓처럼 들리므로 실제로 서버가됩니다. 메시지를 다시 보내기 위해 클라이언트에서 이미 연 연결 (여기서는 TCP라고 가정)을 사용하지 않는 이유는 무엇입니까? –

답변

0

서버에 연결하기 전에 클라이언트 소켓을 로컬 주소 (IP 및 포트 번호)에 바인드하십시오. 예 : 오류를 처리 할 준비가되었습니다. 포트를 사용할 수없는 경우 (다음 포트를 선택하고 다시 시도하십시오).

0

System.Net.Sockets 네임 스페이스를 사용하고 계신지요?

이 경우는 NetworkStream 같은 클래스가 생성자 매개 변수로 소켓을 :

http://msdn.microsoft.com/en-us/library/system.net.sockets.networkstream.aspx 마찬가지로

에서,하여 TcpClient 포트와 생성자의 인수로 서버 걸립니다 포트는이 맥락에서 소켓과 동일합니다 :

http://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient.aspx

마지막으로, 당신은 몇 가지 방법이 소켓의 수를 제어 할 수 있습니다 :

  • 명령 줄을 매개 변수를
  • Application.Config에서
  • 설정은 파일

몇 가지가 있습니다 레지스트리에서 읽기 이 유형의 것에 대한 메소드.

관련 문제