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 に答える