2

我正在为游戏Minecraft开发服务器,当玩家断开连接时,它会显示一个深红色的屏幕。我正在断开这样的玩家:

Socket.Shutdown( SocketShutdown.Both );
Socket.Close();

之后我似乎无法写入数据,但没有出现断开连接的屏幕。它仅在我完全终止服务器应用程序时出现,这表明连接根本没有关闭。

我究竟做错了什么?

编辑:

socket.BeginAccept( new AsyncCallback( AcceptClient ), null );

private void AcceptClient( IAsyncResult result )
    {
        try
        {
            // Initialize player
            Socket client = _socket.EndAccept( result );

.

Log( "Received unrecognized packet from " + player.IPAddress() + ", disconnecting client!" );

player.Disconnect();
_clients.Remove( player );
4

2 回答 2

1

我不知道 Minecraft 的 API 是什么样的,但很可能你需要先向客户端发送一条命令,让他们知道他们已经断开连接。

于 2010-11-25T18:28:48.343 回答
0

怎么样Socket.Disconnect()

于 2010-11-25T18:31:06.790 回答