当前位置: 首页 > 知识库问答 >
问题:

Android无法连接到套接字服务器(java)

龙洛城
2023-03-14

我编写了一个简单的java套接字服务器。我可以使用java客户端连接到它。

但是,当我尝试将android设备连接到它时,它会给出以下错误:socket failed:eacces(权限被拒绝)

代码如下:

btnConvert.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String text = txtText.getText().toString();
                try {
                    Socket socket = new Socket("192.168.0.110", 7575);
                    BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                    PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
                    out.println(text);
                    Toast.makeText(context, in.readLine(), Toast.LENGTH_SHORT).show();
                    in.close();
                    out.close();
                    socket.close();
                }
                catch(Exception e){
                    e.printStackTrace();
                }
            }
        });

这一行:socket socket=新套接字(“192.168.0.110”,7575);似乎是罪魁祸首。

错误消息“java.net.socketexception:套接字失败:EACCES(权限被拒绝)”

Android java.net.SocketException:套接字失败:EACCES(拒绝权限)

Android java.net.SocketException:套接字失败:EACCES(拒绝权限)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.priyabrata.socketdemo" >

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

共有1个答案

韩喜
2023-03-14

不能在on click处理程序中创建套接字,因为它在主线程中运行。

使用thread或AsyncTask进行套接字创建、读取和写入。

 类似资料:
  • 线程“main”java.net.ConnectException:连接超时:在java.net.dualStackplainsockeTimpl.Connect0(本机方法)在java.net.dualStackplainsockeTimpl.socketConnect(DualStackplainsockeTimpl.java:69)在java.net.abstractplainsockeTi

  • 问题内容: 上传或提交页面时,我的网站上出现以下错误: mysql_real_escape_string()[function.mysql-real-escape- string]:无法通过套接字’/var/lib/mysql/mysql.sock’连接到本地MySQL服务器(2) 这到底是什么意思? 问题答案: 由于对该错误的调用引发了错误,因此它意味着您没有先调用该错误并将有效的数据库句柄传递

  • Java: 在C#中-它停止在“receiver=listener.accept();”在java(android)中-它停止于“sender_socket=new Socket(serverAddr,SERVERPORT);”这应该是java套接字函数的问题--需要另一个函数连接到C#-server。

  • 问题内容: 当我在测试套件中尝试连接到本地MySQL服务器时,它失败并显示以下错误: 但是,我始终可以通过运行命令行mysql程序连接到MySQL 。A 显示服务器正在运行,并 确认套接字存在。此外,如果在except该异常的子句中打开调试器,则可以使用完全相同的参数可靠地进行连接。 这个问题可以相当可靠地重现,但是似乎不是100%,因为每当我遇到一次蓝月亮时,我的测试套件就可以运行而不会遇到此错

  • 我正在尝试连接两个docker容器,一个是posgresql,另一个是python flask应用程序。两者都链接正确,python应用程序中的所有连接变量都直接取自postgres容器中通过链接公开的连接变量,并且与检查postgresql容器时发现的连接变量相同。当我将psql与连接字符串中的精确参数一起使用时,即: 成功连接到postgres容器中的数据库,因此我知道postgres正在通过

  • 我在设置打开班次时遇到问题,并在连接到我的服务器域后收到以下错误: 我不确定这是在告诉我做什么。我尝试按字面意思使用指令,但它无法识别命令。 有什么想法吗?