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 之后仍然为空。将 catch 移到此代码的末尾。在可能受它们影响的代码之前不要捕获异常。

于 2013-03-28T21:46:09.830 回答