android尝试套接字路由错误

标签 android

当我尝试连接到 wifi 路由时,这是我的代码,但我显示错误

Button.OnClickListener buttonConnectOnClickListener = new Button.OnClickListener(){
    @Override
    public void onClick(View arg0) {

        connectivity = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

        wifiInfo = connectivity.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

        if (wifiInfo.isConnected()) {

        if(!connected){

             try {
                // socket = new Socket("192.168.1.1", 2001);
            // Log.v("test4","test4");
             /*Toast msg = Toast.makeText(Main.this,
             "Connected Successfully", Toast.LENGTH_LONG);
             msg.show();*/
             //Log.v("test5","test5");
             socket = new Socket("192.168.1.1",2001);
                  dataOutputStream = new DataOutputStream(socket.getOutputStream());
                  changeConnectionStatus(true);} 
             catch (UnknownHostException e) {changeConnectionStatus(false);} 
             catch (IOException e) {changeConnectionStatus(false);}}
        else{
            try {socket.close();
            Toast msg = Toast.makeText(Main.this,
            "Disconnected Successfully", Toast.LENGTH_LONG);
            msg.show();
                  changeConnectionStatus(false);} 
            catch (UnknownHostException e) {changeConnectionStatus(false);}
            catch (IOException e) {changeConnectionStatus(false);}}}
        else {Toast msg = Toast.makeText(Main.this,
                "Wifi is not connected !", Toast.LENGTH_LONG);
                msg.show();}
}};

logcat中的错误是

06-26 18:37:48.190: W/dalvikvm(11911): threadid=1: thread exiting with uncaught exception (group=0x40a571f8) 06-26 18:37:48.205: E/AndroidRuntime(11911): FATAL EXCEPTION: main 06-26 18:37:48.205: E/AndroidRuntime(11911): android.os.NetworkOnMainThreadException 06-26 18:37:48.205: E/AndroidRuntime(11911): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099) 06-26 18:37:48.205: E/AndroidRuntime(11911): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)

最佳答案

您正试图在主应用程序线程上打开一个套接字。网络 I/O 需要在后台线程上进行,因此不会占用用户界面。

关于android尝试套接字路由错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17318035/

相关文章:

java - Android 异常尝试调用虚方法 'int android.content.Context.checkPermission(java.lang.String, int, int)

java - 将对象发送到另一个 Activity 时类转换异常

android - 如何在 android 中为不同的 2 密度(如 mdpi、ldpi、hdpi)使用 9 个补丁图像。?

android - 警报 (RTC_WAKEUP) 后触发 Activity ,但屏幕保持黑屏

android - 获取SD卡路径

android - 为 Android KitKat 准备 SMS 应用

android - 以编程方式将主题颜色更改为 Android 中的任何颜色

java 如何使用socket获得更快的速度

android - NDK BUILD 没有那个文件或目录

android - 取消/暂停/停止任何插页式广告