Всем привет, вот решил написать чат, но столкнулся с такой проблемой: он работает только на локальной машине и по локальной сети, когда бросаю его другу (меняя в исходном коде ip разумеется) ничего не работает (клиент и сервер не могут соединится), посмотрите исходник и подскажите пожалуйста, что не так.
Это сервер, он находится на моем компьютере.
Код | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Sockets; using System.Net; using System.Threading;
namespace с_шарп { class Program {
static void Main(string[] args) {
int port = 11000; IPAddress ip = IPAddress.Any; IPEndPoint end = new IPEndPoint(ip, port);
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); s.Bind(end); s.Listen(2); Socket d = s.Accept();
Console.WriteLine("Connect"); byte[] msg = new byte[20]; string a; d.Receive(msg);
a = Encoding.ASCII.GetString(msg);
Console.WriteLine(a); Console.ReadLine(); d.Close(); s.Close(); }
} }
|
А вот это клиент, он у моего друга:
Код | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Sockets; using System.Net; using System.Threading; using System.IO;
namespace client { class Program { static void Main(string[] args) {
int port = 11000; IPAddress ip = IPAddress.Parse("91.216.133.235"); // мой внешний ip IPEndPoint end = new IPEndPoint(ip, port);
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); byte[] msg = new byte[20]; s.Connect(end); Console.WriteLine("connect"); string a = Console.ReadLine(); msg = ASCIIEncoding.ASCII.GetBytes(a); s.Send(msg);
Console.ReadLine(); s.Close();
}
} }
|
|