0
你好,即時通訊學習如何使用套接字編寫應用程序,這是我的問題。我現在如何才能在局域網中建立連接,我的意思是......我會將我的客戶端應用程序發送給我的朋友,他將能夠連接到我的服務器。 有代碼:C#如何連接公共ip
客戶端:
Socket sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sck.Bind(new IPEndPoint(IPAddress.Parse("xx.xx.31.87"), 56597));
sck.Listen(100);//maksymalna ilosc polaczen oczekujacych
Socket accepted = sck.Accept();
byte[] Buffer = new byte[accepted.SendBufferSize];
int bytesRead = accepted.Receive(Buffer);
byte[] formatted = new byte[bytesRead];
for (int i = 0; i < bytesRead; i++)
formatted[i] = Buffer[i];
string strData = Encoding.ASCII.GetString(formatted);
Console.Write(strData + "\r\n");
Console.Read();
sck.Close();
服務器:
Socket sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sck.Bind(new IPEndPoint(IPAddress.Parse("xx.xx.31.87"), 56597)); //yes i censored ip.
sck.Listen(100);//maksymalna ilosc polaczen oczekujacych
Socket accepted = sck.Accept();
byte[] Buffer = new byte[accepted.SendBufferSize];
int bytesRead = accepted.Receive(Buffer);
byte[] formatted = new byte[bytesRead];
for (int i = 0; i < bytesRead; i++)
formatted[i] = Buffer[i];
string strData = Encoding.ASCII.GetString(formatted);
Console.Write(strData + "\r\n");
Console.Read();
sck.Close();
我做了端口轉發,但是當我要寫信給我IPEndPoint這個地址給我的錯誤,如無效的IP。
我怎樣才能連接不只是在局域網******************* –
你使用你的公共IP?或局域網IP? – Pikoh
你的朋友是在路由器後面嗎?如果是這樣,那麼他可能需要將您使用的任何端口端口轉發。 –