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

在Android上拒绝 TCP 套接字连接

公羊涛
2023-03-14

在一个简单的客户端-服务器TCP套接字中,当我试图在Android Studio中创建客户端套接字时,遇到了一个问题。导致错误的指令是<code>Sockets=new Socket(主机名,端口)

我使用的端口是 1993,我尝试了主机名变量的一些值:

  1. 主机名=“127.0.0.1”
  2. 主机名 =“本地主机”
  3. 主机名 =“”
  4. 主机名 = InetAddress.getByName([与前 2 个值])

在每种情况下,应用程序都会因为这个错误而停止,下面的错误属于第一点,其他的得到类似的错误。

    W/System.err: Couldn't get I/O for the connection to 127.0.0.1
    W/System.err: java.net.ConnectException: failed to connect to /127.0.0.1 (port 1993): connect failed: ECONNREFUSED (Connection refused)
            at libcore.io.IoBridge.connect(IoBridge.java:124)
            at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
            at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:163)
            at java.net.Socket.startupSocket(Socket.java:592)
            at java.net.Socket.tryAllAddresses(Socket.java:128)
            at java.net.Socket.(Socket.java:178)
            at java.net.Socket.(Socket.java:150)
    W/System.err:     at com.example.davide.beachapp.model.ClientSocket$MyThread.run(ClientSocket.java:92)
        Caused by: android.system.ErrnoException: connect failed: ECONNREFUSED (Connection refused)
            at libcore.io.Posix.connect(Native Method)
            at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:111)
            at libcore.io.IoBridge.connectErrno(IoBridge.java:137)
            at libcore.io.IoBridge.connect(IoBridge.java:122)
            ... 7 more

Eclipse中的相同指令工作,我在命令行上使用服务器“nc -l 1993”对其进行了测试,并且所有内容都可以在Eclipse上工作。

也许是货单的配置问题?

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.example.davide.beachapp">
  <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" />
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>                
  <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
      android:name=".MainActivity"
      android:label="@string/app_name"
      android:theme="@style/AppTheme.NoActionBar">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" >
      </intent-filter>
    </activity>
  </application>
</manifest>

共有2个答案

柳飞飙
2023-03-14

在模拟器中,您必须在 LAN 上使用计算机的 IP。例如,在我的网络网关:192.168.0.1和我的计算机的IP是192.168.0.2。所以,在Android模拟器中,我必须制作:

< code>Socket socket =新插座(“192.168.0.2”,1993);

赵雅懿
2023-03-14

如果您使用的是模拟器,请尝试使用 10.0.2.2 而不是 127.0.0.1

有关更多信息,请访问此页面:

设置Android模拟器网络

 类似资料:
  • 服务器名设置为“localhost”,端口为80。使用这些参数,我可以运行程序而没有任何异常,但是当代码到达in.readutf()行时,它会旋转。 当端口更改为任何其他端口时,我会得到一个连接拒绝异常。 另一方面,当我创建一个简单的“ServerSocket”程序接收端口80上的请求时,我会得到“Address Academy in use”异常,除了80之外的任何端口都适用于“ServerSo

  • 问题内容: 我试图使用此代码从我的android应用程序向服务器发送数据。 尝试使用用户名和密码对登录时出现以下错误消息。 [套接字] [0]连接/ myip:80; LocalPort = 33049(0)关闭[套接字] [/ 0.0.0.0:33049] W / System.err:org.apache.http.conn.HttpHostConnectException:与http的连接

  • 我创建了一个带有服务和活动的Android测试程序。在活动中,我启动粘性服务。服务每10秒发出http请求。如果我不退出活动,一切正常。如果我退出,某个时候服务可以工作,然后被系统杀死并重新启动。重新启动后,有时http请求可以工作,有时会给出错误消息: 更新05.10.17我注意到连接不仅在服务重新启动后消失,而且在2-3分钟后,当退出活动时也会消失。当我返回活动状态时,连接将恢复。我做了一个视

  • 我试图使用下面的代码从android访问RESTful webservice。 但是我得到以下异常。 07-22 16:53:15.450:E/AndroidRuntime(1491):原因:com.sun.jersey.api.client.clientHandlerException:java.net.ConnectException:未能连接到LocalHost/127.0.0.1(端口80

  • 当我在Consult服务器和客户端上运行任何时,会出现此错误。端口处于侦听状态,我确保没有防火墙阻止。当在Consult客户端中运行相同内容时,我会出现以下错误: