Socket sck;
EndPoint epLocal, epRemote;
byte[] buffer;
private void Connect_Click(object sender, EventArgs e)
{
//binding socket
epLocal = new IPEndPoint(IPAddress.Parse(textLocalIp.Text), Convert.ToInt32(textLocalPort.Text));
sck.Bind(epLocal);
//Connecting to remote IP
epRemote = new IPEndPoint(IPAddress.Parse(textRemoteIp.Text), Convert.ToInt32(textRemotePort.Text));
sck.Connect(epRemote);
//Listening the specific port
buffer = new byte[1500];
sck.BeginReceiveFrom(buffer, 0, buffer.Length, SocketFlags.None, ref epRemote, new AsyncCallback(MessageCallBack), buffer);
}
Я создаю "чат" для 2 человек. Если у каждого человека есть IP-адрес и порт других лиц, они могут общаться с ними. Но он работает только в той же сети, потому что, если я набираю любой IP-адрес, который не является локальным, он показывает ошибку «Указан неверный IP-адрес». Я не уверен, как решить эту проблему, и мне также интересно, понадобится ли мне Внешний и Локальный IP-адрес для отправки сообщения на правильный компьютер.