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

在android中,插座一连接就断开

狄德泽
2023-03-14

我试图创建群聊android应用程序和使用Websocket服务器编写的PHP。这个服务器在Web浏览器上工作得很好,但当我试图在android应用程序中使用它时,应用程序一连接就断开了。

这里是Android代码:

private WebSocketClient mWebSocketClient;
private ListView mMessageListView;
private ArrayAdapter<String> mAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_layout);
    mMessageListView=(ListView)findViewById(R.id.listView);
    mAdapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1);
    mMessageListView.setAdapter(mAdapter);
    connectWebSocket();
}

private void connectWebSocket(){
    URI uri;
    try {
        uri=new URI("ws://192.168.0.102:9000");
        mWebSocketClient=new WebSocketClient(uri){

            @Override
            public void onOpen(ServerHandshake serverHandshake) {

            }

            @Override
            public void onMessage(String s) {

            }

            @Override
            public void onClose(int i, String s, boolean b) {

            }

            @Override
            public void onError(Exception e) {


            }
        };
        mWebSocketClient.connect();
    } catch (URISyntaxException e) {
        e.printStackTrace();
        return;
    }

}


private void Append_Message(String log){
    mAdapter.add(log);
    mAdapter.notifyDataSetChanged();
}

共有1个答案

宫俊远
2023-03-14

当我使用https://github.com/pavelbucek/tyrus-client-android-test重写这段代码时,我认为我不能完全满足以前使用的库的要求。但是这个链接教程已经解决了我的问题。

 类似资料:
  • 背景我正试图为我的java服务器创建一个android客户端应用程序,并让它们使用TCP套接字进行通信。 当我在android设备模拟器上运行我的应用程序时,它的工作原理是什么 当我在手机上运行该应用程序时,我无法正常工作,我在创建套接字时遇到连接超时。 异常 java.net.Connect异常: 无法连接到 /10.0.2.2 (端口 9111): 连接失败: ETIMEDOUT (连接超时)

  • 我正在开发一个单例BluetoothHelper类。在connectToBTDevice()方法中,调用了一个新线程,在该线程中,蓝牙套接字试图连接到蓝牙设备。不幸的是,它开始时很好,但退出时有一个警告系统。错误如下: BluetoothHelper.java onnectToBTDevice(BluetoothDevice device)方法位于第234行。BluetoothSocket con

  • 我有一个节点。js服务器使用socket。io和Android应用程序。我希望我的应用程序连接到服务器。(我在当地工作) 首先我启动服务器:命令提示符 以下是代码: 然后我试着从这里的活动中联系起来: 我的问题是,我从来没有在服务器上看到“一个用户连接”的日志,但我总是在android日志上看到“尝试连接”和“连接成功”。 有人能帮我解开这个谜团吗? 使现代化 我的代码工作正常,但我遇到了一些Wi

  • 我有nodejsexpress项目。我正在实现套接字。io用于聊天应用程序。要检查Socket连接,我正在使用此工具。https://amritb.github.io/socketio-client-tool/ 这是我的服务器代码。 我使用上述工具检查了连接。像 http://localhost:3000,并连接插座。但是当我在服务器中检查它时,它不起作用。 我在服务器中使用ngnix服务器并映射

  • 问题内容: Java 类有两种方法,分别检查套接字是关闭还是连接。我想知道仅开放的TCP套接字与开放和连接的TCP套接字有什么区别,这与UDP有何不同。 问题答案: 为了把事情简单地说,这是 开放的 是要么等待连接或已与另一个成功连接的插座。当一个套接字被 关闭 ,这意味着这个套接字没有连接不再可用,而且它的资源已被释放。一个已连接的好,这意味着该套接字已连接到另一个。 这样可以 同时打开并连接。

  • 我目前正在编写一个简单的TCP聊天客户端服务器应用程序,它与套接字一起工作。客户端连接到服务器,一旦被接受,就会创建一个新的工作线程来侦听客户端输入。连接到服务器(端口8818处的localhost)工作正常,但只要工作线程在登录java.net之后开始监听更多客户端输入。SocketException:引发连接重置(请参阅下面的堆栈跟踪)。我知道,此异常的一个可能来源可能是服务器或客户端未正确或