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

C# 客户端-服务器连接无法通过internet工作,c#,client-server,tcplistener,C#,Client Server,Tcplistener,我正在尝试使用标准的TcpListener/TcpClient类创建自己的简单客户机-服务器应用程序。首先,我必须说我是网络编程的初学者。所以,我制作了它,但它只在本地工作(两台计算机都在同一个网络中,我使用ipconfig中的ipv4地址(是本地的吗?)创建TcpListener,并使用相同的地址从TcpClient的客户端应用程序连接 我如何才能使用我的实际IP地址(由提供商提供,由tismyip.com向我展示)?我应该在服务器上使用127.0.0.1,在客户端使用我的外部IP吗 感谢您的

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

我如何才能使用我的实际IP地址(由提供商提供,由tismyip.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);
        }
}
这里还有一个来自我的库的简单客户端示例: