2014-09-15 6 views
0

인터넷에 연결된 두 대의 컴퓨터 인 PC-01에서 PC-B로 데이터를 보내려고합니다. C#에서 소켓 프로그램을 작성할 수 있습니까? 나는 대부분의 예제를 로컬 컴퓨터에서 검색하거나 정적 IP 주소를 사용하여 검색하려고합니다.C#에서 소켓을 사용하여 인터넷에있는 두 대의 컴퓨터를 연결하는 방법

컴퓨터 1 -> 인터넷 서비스 제공 업체 (가진 IP : 116.203.188.231) -> 공유기 -> PC-01/PC-02

컴퓨터 2 -> 인터넷 서비스 제공자 (IP를 가진 : 49.202.72.175) - -> 브로드밴드 라우터> PC-A/PC-B

나는이 시도 :

m_socListener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 
IPEndPoint ipLocal = new IPEndPoint(IPAddress.Any, 8000); 
m_socListener.Bind(ipLocal); 
m_socListener.Listen(4); 
m_socListener.BeginAccept(new AsyncCallback(OnClientConnect), null); 
: 서버에서

클라이언트에

:

m_socClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 
IPAddress ip = IPAddress.Parse(49.202.72.175); 
int iPortNo = System.Convert.ToInt32(8000); 
IPEndPoint ipEnd = new IPEndPoint(ip.Address, iPortNo); 
m_socClient.Connect(ipEnd); 
EnableCommands(false); 
//watching for data 

코드 위는 아무런 문제가 없지만, 그것은 작동하지 않습니다. 연결하려고 할 때 "대상 컴퓨터가 적극적으로 거부했기 때문에 연결할 수 없습니다"라는 메시지가 나타납니다.

방화벽을 점검하고 응용 프로그램이 두 시스템 모두에 대해 & 포트를 허용합니다.

연결 컴퓨터의 IP 주소는 116.203.188.231이고 다른 컴퓨터의 IP는 49.202.72.175입니다. IP 49.202.72.175는 ISP (고정 IP가 아니며 isp의 다른 사용자가 공유 할 수도 있음)와 로컬 LAN을 사용하여 49.202.72.175를 통해 인터넷에 연결된 컴퓨터보다 더 많이 제공됩니다. 그래서 소켓을 사용하여 컴퓨터에 연결할 수 있습니까? 아니면 두 컴퓨터를 연결하는 기술이 있습니까?

미리 감사드립니다.

+1

일반적으로 포트 '8000'은 시스템 방화벽에 의해 차단됩니다. 비 차단 포트를 사용하거나 두 시스템 모두에서 방화벽을여십시오. – cackharot

+1

라우터에서 포트 포워딩을 구성해야합니다 (수신 측) –

+0

_ "C#으로 소켓 프로그램을 작성할 수 있습니까?"- 예. _ 또는 "두 대의 컴퓨터를 연결하는 기술이 있습니까?" 그러나 자신의 컴퓨터에서 두 가지 프로그램을 사용하여 작게 시작하고 기본 네트워킹에 대한 책을 선택하여 이러한 문제를 확인하고 문제를 해결하십시오. 가장 확실한 포트 포워딩. – CodeCaster

답변

-1

예, 물론 당신은

당신은 당신이 여기에 예를 볼 수 있습니다 소켓을 통해 보낼 수있는 경우 :

http://code.msdn.microsoft.com/windowsdesktop/Communication-through-91a2582b

또한, 방화벽이 아마이 포트를 차단하고 있습니다. 당신이하는 데는 보통 열려있는 80 포트를 변경하거나 모든 방화벽의 exaption는 항상

그렇지 않으면 다른 컴퓨터의 IP를 알고 있다면 이것은 좋은

을 포함 설정할 수 있습니다, 나는 서버를 사용하는 운영자 추천 그들 사이에 연결할 것입니다

+0

위 링크가 작동하지 않습니다. 포트 80에서도 같은 문제가 발생합니다. – Subrata

+0

죄송합니다, 링크를 고정했습니다. –

관련 문제