我一直在向连接到服务器的客户端发送数据包,但试图这样做 将相同的数据包发送到实际的主机本身会出现错误。
这是破解的代码
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%工作。
帆布
答案 0 :(得分:0)
你的try / catch太局部了'socket'在catch之后仍然可以为null。将catch移动到此代码的末尾。在可能受其影响的代码之前,不要捕获异常。