[英]C# TCP Socket Client refuses connection
這是我的服務器
當在Internet上使用多個不同的端口檢查工具時,我在服務器上建立了連接,表明我的端口已打開
http://www.infobyip.com/tcpportchecker.php
http://www.yougetsignal.com/tools/open-ports/
static void Main(string[] args)
{
IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName());
IPAddress ipAddress = ipHostInfo.AddressList[0];
IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Any, 10897);
Console.WriteLine("Server Start");
Socket listener = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
listener.Bind(localEndPoint);
listener.Listen(10);
while (true)
{
Console.WriteLine("Waiting for a connection...");
Socket handler = listener.Accept();
Console.WriteLine(handler.RemoteEndPoint);
handler.Shutdown(SocketShutdown.Both);
handler.Close();
}
}
這是我的客戶代碼
static void Main(string[] args)
{
IPEndPoint ip = new IPEndPoint(IPAddress.Parse("MY IP HERE"), 10897);
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
server.Connect(ip);
}
我每次都會遇到此錯誤,我嘗試使用System.Net.Sockets.TcpClient和套接字從客戶端進行多次嘗試,並且每次我拒絕連接時,由於服務器從端口檢查器接收到連接,因此我的客戶端似乎出現了一些問題
我已經閱讀了數十個其他套接字主題,但是所有問題都與服務器有關,而與客戶端無關,我不知道有人有什么問題可以幫助我嗎?
編輯:我可以通過本地主機(127.0.0.1)連接,但不能從我的公共IP連接
代碼工作正常(服務器的前兩行不執行任何操作)。 您有防火牆或路由問題。
看來問題出在我的路由器進行了一些設置,使其不接受與外部ip的內部連接,我讓我的朋友運行了客戶端代碼,並且連接正常
它與Windows防火牆異常有關。 首次運行時,系統會提示您允許連接。 如果您第一次允許,則在防火牆中創建例外。 也許你否認了。 還可以嘗試通過app.manifest為您的應用程序提升必需的特權
這似乎是端口轉發/路由問題。 使用端口檢查器檢查轉發的端口是否可訪問
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.