Я пытаюсь сделать небольшой простой сервер, который я могу использовать между колледжем и домом. Сервер работает нормально, клиенты могут подключаться. Но я хочу иметь возможность подключаться из-за пределов локальной сети. Я пытаюсь найти способ, чтобы отобразить IP-адрес машины, необходимые для подключения к нему:Отображение IP-адреса локального компьютера для подключения вне сети?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Sockets;
using System.Net;
namespace SocketProgramming
{
class Program
{
private static byte[] _buffer = new byte[1024];
private static Socket _serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
private static List<Socket> _clientSockets = new List<Socket>();
private static List<string> _nicknames = new List<string>();
static void Main(string[] args)
{
SetupServer();
Console.ReadLine();
}
private static void SetupServer()
{
Console.Write("Enter a port number to establish the server on: ");
int portNum = Int32.Parse(Console.ReadLine());
_serverSocket.Bind(new IPEndPoint(IPAddress.Any, portNum));
_serverSocket.Listen(5);
_serverSocket.BeginAccept(new AsyncCallback(AcceptCallback), null);
}
}
}
Как получить IP-адрес локальной машины? Я хочу, чтобы иметь возможность запускать этот код на любом компьютере, поэтому использование статического IP-кода в коде не поможет.
Возможный дубликат [Получить локальный IP-адрес] (http://stackoverflow.com/questions/6803073/get-local-ip-address) –
Я предполагаю, что ваш «сервер» будет в вашей домашней сети и ваш клиент будет работать за пределами этой сети. В этом случае вы хотите узнать IP-адрес сервера, который будет публичным IP-адресом вашей домашней сети. Это значение не является статическим, если вы не используете какой-либо сервис ($$) для получения статического IP-адреса для вашего дома. –
@ThomasWeller Это исправлено. Спасибо, бутон! –