【问题标题】:NullPointer for socket receive or maybe the socket用于套接字接收或套接字的 NullPointer
【发布时间】:2013-03-28 08:56:01
【问题描述】:

我一直在向连接到服务器的客户端发送数据包,但尝试 将相同的数据包发送到实际主机本身不断出现错误。

这是中断的代码

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% 工作。

画布

【问题讨论】:

  • 有没有可能你的socket = new DatagramSocket(port);在此之前通话失败?在这种情况下,您只是打印堆栈跟踪,然后继续执行

标签: java android networking udp wifi


【解决方案1】:

您的 try/catch 过于本地化 'socket' 可能在 catch 之后仍然为空。将 catch 移到此代码的末尾。在可能受它们影响的代码之前不要捕获异常。

【讨论】:

    猜你喜欢
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 2012-08-01
    • 2012-03-08
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多