小编典典

套接字连接错误“ null”,Android

java

我正在尝试做的事情:
我现在正在尝试构建一个测试应用程序,只需在Android手机(4.2.2)(作为客户端)上的应用程序与在PC上运行的Java应用程序(Windows8)(作为服务器)通过套接字连接。

我已经完成的工作:
我已经在PC上的Java中为客户端和服务器编写了程序,并对其进行了积极的测试(建立了Connection)。

网络:
我的手机和PC都连接到我家里的wifi。PC上的 ipconfig 显示地址 192.168.56.1,
而登录路由器时,其显示我的计算机的地址为 192.168.0.108 (可能我不懂网络:P)。

代码:
客户端(Android)

public void connectPC(View view)
{
    try
    {

        clientSocket = new Socket("192.168.0.108",1025);
        outstream = clientSocket.getOutputStream();
        instream = clientSocket.getInputStream();
        data_out = new DataOutputStream(outstream);
        data_in = new DataInputStream(instream);
        statusView.setText("Connected!");
    }
    catch (Exception e)
    {
        statusView.setText("Error: "+e.getMessage());
    }
}

服务器:

import java.net.*;
import java.io.*;
public class ServerSide extends Thread
{
    ServerSocket serverSocket;
    public ServerSide(int port) throws IOException
    {
        serverSocket = new ServerSocket(1025);
        serverSocket.setSoTimeout(10000);
    }

    public void run()
    {
        while(true)
        {
            System.out.println("Waiting for client on port : "+ serverSocket.getLocalPort());
            Socket server;
            try {
                server = serverSocket.accept();
                System.out.println("Connected to : " +server.getRemoteSocketAddress());
            } catch (IOException e) {
                // TODO Auto-generated catch block
                System.out.println(e.getMessage());
            }

        }
    }

    public static void main(String... args)
    {
        int port=6066;
        try
        {
            Thread t = new ServerSide(port);
            t.start();
        }
        catch(IOException e)
        {
            System.out.println(e.getMessage());
        }
    }
}

问题:- 连接根本无法建立,catch块将 e.getMessage() 显示为null。

PS 我也尝试了 192.168.56.1 ip地址。并在清单文件中添加了 使用权限

在这方面有任何帮助。


阅读 178

收藏
2020-11-26

共1个答案

小编典典

您需要打印堆栈跟踪信息,而不仅仅是异常消息。这将为您提供更多信息来调试问题……包括异常的名称以及引发异常的位置。

同样,捕获Exception并尝试从中恢复也是一个坏主意。捕捉Exception可能会捕获到您从未想到的各种异常。从您没有想到的异常中恢复是有风险的……因为您_无法_ 确定这样做是安全的。通常最好让应用程序死掉…

2020-11-26