1

サーバーに接続されたクライアントにパケットを送信してきましたが、実際のホスト自体に同じパケットを送信しようとすると、エラーが発生し続けます。

これが壊れるコードです

if(socket == null)
            {
                try 
                {
                    socket = new DatagramSocket( port );
                } 
                catch (SocketException e) 
                {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

            if( server.returnPlayers() > 0)
            {

                byte[] buf = new byte[256];
                DatagramPacket packet = new DatagramPacket( buf, buf.length );
                try 
                {
                    socket.receive( packet ); ..<---this line
                } 
                catch (IOException e) 
                {
                    Log.d(TAG, "Error with receiving data");
                    e.printStackTrace();
                }
                ...

理由はありますか?同じパケットがクライアントに送信され、100% 機能します。

キャンバス

4

1 に答える 1

0

try/catch がローカルすぎます 'socket' が catch の後も null のままである可​​能性があります。キャッチをこのコードの最後に移動します。影響を受ける可能性のあるコードの後まで、例外をキャッチしないでください。

于 2013-03-28T21:46:09.830 に答える