服务器/客户端套接字

本文关键字:套接字 客户端 服务器 | 更新日期: 2023-09-27 18:08:37

好的,所以我是新的套接字编程,我正在做一个游戏,将从服务器运行。我将尝试让100个客户端在我的服务器上运行。我应该为每个客户机创建一个侦听器实例还是一个侦听器实例?此外,我还试图在100个不同的端口上创建100个侦听器,但当我运行服务器时,我在试图启动侦听器时出现错误。这是一款3D RPG/MMORPG游戏。大多数的游戏逻辑是在客户端。你觉得我该怎么做?

服务器/客户端套接字

如果你打算使用TCP套接字,那么你应该创建一个监听套接字(即创建一个套接字,将其绑定到一个特定的端口并在其上调用Listen())。然后,当您接受连接并获得另一个套接字(用于从客户端接收/发送数据)时:

Socket socketListener;
// create listening socket
socketListener = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
IPEndPoint ipLocal = new IPEndPoint(IPAddress.Any, 30120);      // use port 30120
//bind to local IP Address.
socketListener.Bind(ipLocal);
//start listening
socketListener.Listen(4);
while (true)   // loop that accepts client connections
{
    Socket socketWorker = socketListener.Accept();
    HandleClientConnection(socketWorker);   // your routine where you communicate with a client
}

另外,考虑在异步模式下使用套接字,这将在性能方面更有效。

每个服务器端点只能有一个侦听器。然后,侦听器将为使用不同端口的客户机创建一个连接。您实际上使用的是这个连接进行通信。