繁体   English   中英

Android套接字错误,没有消息

[英]Android Socket error with no message

我创建一个简单的网络测试应用程序。 但是它不起作用,并且总是在Socket()处引发错误。 我尝试使用getMessage()检查错误消息,但未打印任何消息。 我该怎么办?

public static void main(String args[]){
    ServerSocket serverSocket = null;
    Socket socket = null;
    try{
        serverSocket = new ServerSocket(14100);
        socket = serverSocket.accept();
        InputStream in = socket.getInputStream();
        OutputStream out = socket.getOutputStream();
        byte[] arr = new byte[100];
        in.read(arr);
        System.out.println(new String(arr));
        String str = "Hello Client";
        out.write(str.getBytes());
    }
    catch(Exception e){
        System.out.println(e.getMessage());
    }
    finally{
        try{
            socket.close();
        }
        catch(Exception ignored){}
        try{
            serverSocket.close();
        }
        catch(Exception ignored){}
    }
}

以下是客户端的android代码。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);
    TextView tv = (TextView) findViewById(R.id.id_tv);

    Socket socket = null;
    try{
        socket = new Socket("192.168.0.52",14100);
        InputStream in = socket.getInputStream();
        OutputStream out = socket.getOutputStream();
        String str = "Hello Server";
        out.write(str.getBytes());
        byte arr[] = new byte[100];
        in.read(arr);
        tv.setText(new String(arr));
    }
    catch(UnknownHostException uhe){
    }
    catch(IOException ioe){
    }
    catch(Exception e){
    }
    finally{
        try{
            socket.close();
        }
        catch(Exception ignored){
        }
    }
}

当然,我在AndroidManifest.xml中添加了针对Android的权限

将套接字代码从UI主线程onCreate()移到AsyncTask或常规线程。

为了进行快速测试,请将所有套接字代码包装到如下线程中:

    new Thread() { 
        public void run() {
            // Move your socket code here for a quick test
        }
    }.start();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM