客户端-服务器连接无法通过internet工作



我正在尝试使用标准的TcpListener/TcpClient类制作自己的简单客户端-服务器应用程序。首先,我不得不说,我是一个网络编程的初学者。所以,我做了它,但它只在本地工作(两台计算机都在同一个网络中,我使用ipconfig中的ipv4地址(它是本地的吗?)来创建TcpListener,并使用相同的地址从TcpClient的客户端应用程序连接。

如何使用我的实际IP地址(由提供商提供,whatismyip.com向我显示)?我应该在服务器上使用127.0.0.1,在客户端上使用外部IP吗?

谢谢你的耐心。

好的,你需要做两件事,首先你需要你的服务器允许从任何ip连接。其次,您需要客户端连接到服务器的ip和端口别忘了转发你用于服务器的端口

首先是服务器

private static Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
void init()
{
    serverSocket.Bind(new IPEndPoint(IPAddress.Any, PORTHERE));
    serverSocket.Listen(1);
    serverSocket.BeginAccept(new AsyncCallback(CallBack), null);
}

然后你需要在客户端上连接到它

private Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
void init()
{
    while (!clientSocket.Connected)
    {
        try
        {
            IPAddress ipAd = IPAddress.Parse(IPHERE);
            clientSocket.Connect(ipAd, PORTHERE);
        }
        catch (SocketException e)
        {
            Console.WriteLine(e.Message);
        }
}

这里还有一个来自我的库的简单客户端的示例:https://github.com/TheRealNOIG/TylerGregorcyksLibrary/blob/master/TylerGregorcyksLibrary/Main/SimpleClient.cs

最新更新