通过IOException的Android套接字客户端

通过IOException的Android套接字客户端,android,python,sockets,Android,Python,Sockets,} 你好 我正在尝试使用套接字连接Python服务器上Android上的客户端。Python服务器工作正常,但Android代码无法通过IOException连接服务器。 有人能告诉我我的错误吗?代码在“client.connect(socketAddress);”行失败。这让我认为生成socketAddress使用了错误的命令。 我发现下面的链接遇到了同样的问题,但他的解决方案对我不起作用 提前感谢大家,, TL您有一个NetworkOnMainThreadExection,它在logcat

} 你好 我正在尝试使用套接字连接Python服务器上Android上的客户端。Python服务器工作正常,但Android代码无法通过IOException连接服务器。 有人能告诉我我的错误吗?代码在“client.connect(socketAddress);”行失败。这让我认为生成socketAddress使用了错误的命令。 我发现下面的链接遇到了同样的问题,但他的解决方案对我不起作用

提前感谢大家,,
TL

您有一个NetworkOnMainThreadExection,它在logcat中清晰可见。所有internet代码都应在线程或异步任务中执行


如果修改代码,则删除所有Toast,因为它们无法在线程或异步任务的doInBackground中调用。

您是否尝试阅读此处?如果您使用的是仿真器,您可以尝试使用10.0.2.2,它可以将仿真器连接到本地主机。我实际上使用的是三星S4 mini,它与我的计算机(Python服务器在其上运行)连接到同一网络。可能与防火墙或路由器或其他东西有关,阻止了您OK!根据你的说法,我的代码还可以吗?这个命令是构造函数所必需的,但我同意,还有其他方法!谢谢你抽出时间
package com.example.tristan.myapplication;
import android.os.Bundle;
        import android.support.v7.app.AppCompatActivity;
        import android.widget.Toast;
        import java.io.IOException;
        import java.net.Inet4Address;
        import java.net.InetAddress;
        import java.net.InetSocketAddress;
        import java.net.Socket;
        import java.net.SocketAddress;
        import java.net.UnknownHostException;

public class MainActivity extends AppCompatActivity {

    private Socket client;
    int serverPort = 8888;
    String serverIP = "192.168.1.6";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        fctClient();
    }

    public void fctClient() {
        try {
            Toast toast = Toast.makeText(getApplicationContext(), "OK", Toast.LENGTH_SHORT);

            InetAddress addr = InetAddress.getByName(serverIP);
            SocketAddress socketAddress = new InetSocketAddress(addr,serverPort);
            //SocketAddress socketAddress = new InetSocketAddress(serverIP, serverPort);

            client = new Socket();
            toast.show();
            client.connect(socketAddress);
            toast.show();

            toast.show();`enter code here`
            client.close();

        } catch (UnknownHostException e) {
            Toast toast = Toast.makeText(getApplicationContext(), "KO1", Toast.LENGTH_LONG);
            toast.show();
            e.printStackTrace();
        } catch (IOException e) {
            Toast toast = Toast.makeText(getApplicationContext(), "KO2", Toast.LENGTH_LONG);
            toast.show();
            e.printStackTrace();
        }
    }