我正在尝试使用标准的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