2016-04-12 3 views
-1

Я пытаюсь создать собственное простое клиент-серверное приложение, используя стандартные классы TcpListener/TcpClient. Прежде всего, я должен сказать, что я новичок в сетевом программировании. Итак, я сделал это, но он работает только локально (оба компьютера находятся в одной сети, и я использую ipv4-адрес из ipconfig (это локальный?) Для создания TcpListener и использования того же адреса для подключения из клиентского приложения для TcpClient.Соединение клиент-сервер не работает через интернет

Как я могу сделать это, чтобы работать с моим фактическим IP-адресом (данный провайдером, whatismyip.com показывает мне)? Должен ли я использовать 127.0.0.1 на сервере и мой внешний IP на клиенте?

Спасибо за терпение.

ответ

0

Хорошо, что вам нужно сделать, во-первых, вам нужен ваш сервер, чтобы разрешить соединение с любым ip. Во-вторых, вам нужен клиент для подключения к ip и порту вашего сервера. Не забудьте порт f orward порт, который вы используете для своего сервера!

Во-первых, сервер

private static Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 

void init() 
{ 
    serverSocket.Bind(new IPEndPoint(IPAddress.Any, PORTHERE)); 
    serverSocket.Listen(1); 
    serverSocket.BeginAccept(new AsyncCallback(CallBack), null); 
} 

И тогда вам нужно подключить к нему на клиенте

private Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 

void init() 
{ 
    while (!clientSocket.Connected) 
    { 
     try 
     { 
      IPAddress ipAd = IPAddress.Parse(IPHERE); 
      clientSocket.Connect(ipAd, PORTHERE); 
     } 
     catch (SocketException e) 
     { 
      Console.WriteLine(e.Message); 
     } 
} 

Также здесь является примером простого клиента из моей библиотеки: https://github.com/TheRealNOIG/TylerGregorcyksLibrary/blob/master/TylerGregorcyksLibrary/Main/SimpleClient.cs

Смежные вопросы