2011-10-10 1 views
2

LAN을 통해 TCP 소켓을 사용하여 데이터를 송수신하는 데 성공했지만 인터넷을 통해 동일하게 수행하려고합니다. 나는 몇몇 친구들에게 정적 IP 사용에 대한 아이디어를 얻었다. 그 고정 IP를 어떻게 사용할 수 있을지 궁금합니다. 호스트 또는 포트 설정을 구성해야합니까? 당신이 당신의 네트워크 어댑터에 IP의 중 하나를 추가 할 필요가 정적 IP가 있으면인터넷을 통해 TCP 소켓을 사용하여 바이트 보내기/받기 (가능하면 고정 IP 사용)

using System; 
using System.Net; 
using System.Net.Sockets; 
using System.Text; 

class MainClass 
{ 
    public static void Main() 
    { 
     IPEndPoint ip = new IPEndPoint(IPAddress.Any,9999); 
     Socket socket = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp); 

     socket.Bind(ip); 
     socket.Listen(10); 
     Console.WriteLine("Waiting for a client..."); 
     Socket client = socket.Accept(); 
     IPEndPoint clientep =(IPEndPoint)client.RemoteEndPoint; 
     Console.WriteLine("Connected with {0} at port {1}",clientep.Address, clientep.Port); 

     string welcome = "Welcome"; 
     byte[] data = new byte[1024]; 
     data = Encoding.ASCII.GetBytes(welcome); 
     client.Send(data, data.Length,SocketFlags.None); 

     Console.WriteLine("Disconnected from {0}",clientep.Address); 
     client.Close(); 
     socket.Close(); 
    } 
} 
+0

[asp.net] 및 [vb.net] 태그를 사용하는 이유는 무엇입니까? –

답변

3

, 체크 아웃 : 아래

내가 당신에게 아이디어를주고 바로 사용할 샘플 코드입니다 동일한 작업을 수행하는 경우 Setting a static IP guide

그런 다음 IPAddress.Any을 사용 중이므로 서버 소켓이이 IP에 나열되어 있는지 확인해야합니다. IPAddress.Any은 시스템의 사용 가능한 모든 IP 주소에 바인딩됩니다.

마지막으로 클라이언트 코드에 정적 IP를 명시 적으로 제공해야합니다. 이 IP를 나중에 구성 파일에 저장하여 나중에 변경할 수 있습니다. 원할 경우 사용자 정의 도메인 이름을 설정하고 IP 대신에 정적 IP를 사용하도록 지정할 수 있습니다.

+0

기본적으로 TCP 소켓을 사용하여 인터넷을 통해 보내기/받기 바이트를 수행하고 싶습니다. 정적 IP를 여기에서 사용할 수있는 방법과 포트를 지정하는 데 필요한 설정은 무엇인지 정보를 찾고있었습니다. 우리가하는 것과 똑같은 일은 LAN을위한 IP만을 지정합니다; TCP 소켓에서 고정 IP를 사용하여 수행 할 설정은 무엇입니까? –

+0

안녕하세요, "서버"코드의 지점에서 설명했듯이, 9999 포트 (예제 코드를 기반으로 함)가 서버 외부에서 액세스 할 수 있는지 이미 잘 알고 있습니다. 클라이언트 측에서'IPEndPoint' 객체를 생성 할 때 정적 IP를 사용하고 클라이언트에 연결하십시오. –

+0

TCP 소켓에서 보내는 포트 설정 및 IP 설정을 보내 주시겠습니까? C#에서 프로그래밍 하시겠습니까? –

1

예, 우리는 두 서버간에 통신 할 수 있도록 포트와 IP를 구성해야합니다. 이를 위해 VPN 구성을 완료했습니다. 이 코드를 실행하려는 시스템에서 해당 시스템을 연결할 수 있는지 확인하십시오. 명령 프롬프트에서 ipconfig/netstat 명령을 실행하여이를 테스트 할 수 있습니다.

두 시스템이 서로 대화 할 수 있는지 확인한 다음이 코드를 실행하십시오. 그 후에도 여전히 문제가 발생하면 언제든지 저에게 연락하십시오.

+0

에서 확인할 수 있습니다. 기본적으로 보내기를 수행하고 싶습니다./TCP 소켓을 사용하여 인터넷을 통해 바이트를 수신하므로 정적 IP를 여기에서 사용할 수있는 방법과 포트를 지정하기 위해 수행해야하는 설정은 무엇인지에 대한 정보를 찾고있었습니다. 우리가하는 것과 똑같은 일은 LAN을위한 IP만을 지정합니다; TCP 소켓에서 고정 IP를 사용하여 수행 할 설정은 무엇입니까? –