2014-05-11 3 views
0

tcp 클라이언트 클래스에 관한 몇 가지 질문과 문제점이 있습니다. 1. 생성자, 광산 또는 연결하려는 원격 호스트에 어떤 IP를 제공해야합니까? MSDN에서 생성자가 로컬 IP 끝점을 사용한다는 것을 알았 기 때문에 이해할 수 없습니다.TCP 클라이언트 문제

TcpClient client = new TcpClient(ip.Text, port: portNum); 

가 예외를 throw하지 않고 실행 코드를 중지 : 2. 무슨 일이 같은 문에 대한 이유가 될 수있다?

+0

"MSDN에서 생성자가 로컬 IP 끝점을 차지하는 것을 볼 수 있습니다."- [아니요] (http://msdn.microsoft.com/en-us/library/vstudio/115ytk56). –

+0

"TcpClient 클래스의 새 인스턴스를 초기화하고 지정된 로컬 끝점에 바인딩합니다." – ByoTic

+0

그건 다른 생성자입니다. 실제로 사용하는 생성자에 대한 설명서를 읽어야합니다. –

답변

0

1. 생성자

당신은 연결하려는 IP를 제공해야합니다에주는 IPAddress 클래스에 대해보고해야하는 IP.

2. 문

왜 입력 않았다

port:portNum의 이유? 그냥 official documentation에 writed 무엇처럼 쓰기 :

//Creates a TCPClient using host name and port. 
TcpClient tcpClientB = new TcpClient ("www.contoso.com", 11000); 
+0

은 별 문제가되지 않습니다. – ByoTic

+0

내 대답을 편집했습니다;) – Knoweldges

+0

tcp 클라이언트가 문자열과 포트 번호를 사용하기 때문에 버전도 잘못되었습니다. : \ – ByoTic

0

System.Net.Sockets.TcpClient 네 개의 생성자가 있습니다. 혼란의 원인이 될 것으로 보인다 두 생성자는 다음과 같습니다

  1. 하여 TcpClient (IPEndPoint로) - 은 지정된 로컬 엔드 포인트에 바인드합니다.
  2. TcpClient (String, Int32) - 지정된 호스트의 지정된 포트에 연결합니다. 컴퓨터에 둘 이상의 NIC (예를 들어, 이더넷 및 WiFi)을 가지고 있으며, 당신이 사용하는 하나의 선택하려는 경우

생성자의 1에 유용합니다. 이 방법으로 TcpClient 인스턴스를 구성하면 명시 적으로 TcpClient.Connect을 호출하여 원격 호스트와 포트 번호를 연결합니다.

생성자 2는 TcpClient 인스턴스를 생성하고 (로컬 끝점을 자동으로 선택 함) 제공된 원격 호스트와 포트를 사용하여 즉시 연결합니다.

+0

감사합니다. 제 2 문제에 대한 제안이 있습니까? – ByoTic

+0

'NullReferenceException'을받는다면'ip'가'null' 일 가능성이 큽니다. 생성자의 첫 번째 인수에 올바른 DNS 이름 (example.com) 또는 IP 주소를 제공해야합니다. –

+0

아니요, 예외가 없습니다. – ByoTic