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

在套接字连接中未获得响应

石思淼
2023-03-14
    if (nsocket.isConnected()) {} 
public class WebService {

public static String devicelisting() {
    Socket nsocket;

    String response = null;

    try {
        nsocket = new Socket("192.168.1.1", 6666);
        if (nsocket.isConnected()) {

            JSONObject json = new JSONObject();
            json.put("cmd", "request_get_file_list");
            json.put("verification", "CVS");
            Log.i("AsyncTask", "doInBackground: Creating socket");
            // nsocket = new Socket();
             OutputStreamWriter out = new OutputStreamWriter(nsocket.getOutputStream(), StandardCharsets.UTF_8);
                out.write(json.toString());
            Log.i("Webservice", "json.toString"+json.toString());

            InputStream in = new BufferedInputStream(nsocket.getInputStream());
            BufferedReader r = new BufferedReader(new InputStreamReader(in));
            StringBuilder stringbuilder = new StringBuilder();
            String line;
            while ((line = r.readLine()) != null) {
                stringbuilder.append(line);
                Log.i("line", "line.line"+line);
            }


            response = stringbuilder.toString();
            Log.i("Response", response);
        }
        else{
            Log.i("Response", "not connected");

        }

    } catch (ProtocolException e) {
        e.printStackTrace();
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (UnknownHostException e) {
        e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (JSONException e) {
        e.printStackTrace();
    }
    return response;
}

请帮我找出问题所在。我太过分了,请帮我解决这个问题

共有1个答案

窦涵忍
2023-03-14

对于套接字驱动的事件,很难实现许多功能,而有一些(开源的)库可以实现这样的任务。考虑使用socket.io。

Properties headers = new Properties();
headers.setProperty("Content-Type","application/json"); // your headers
SocketIO socketIO = SocketIO(url, headers);

欲了解更多信息,请参阅SocketIO文档

编辑

 类似资料:
  • 我在Python中使用套接字制作聊天应用程序,但当我尝试从不同的计算机连接时,它会说: C:\用户\James\OneDrive\Documents\Python\Projects\Gui聊天\client.pyw[WinError 10060]连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机没有响应 这是套接字的服务器代码: 我还有一个循环接受所有请求: 在客

  • 问题内容: 我正在尝试为python中的类编写单元测试。该类在 init 上打开一个tcp套接字。我试图对此进行模拟,以便可以断言使用正确的值调用了连接,但是显然在单元测试中实际上并未发生。我已经厌倦了MagicMock,补丁程序等,但是还没有找到解决方案。 到目前为止我的班级看起来像 问题答案: 如果您只想断言被正确调用,这很简单 如果必须先导入模块才能访问,则需要稍微调整补丁:

  • 问题内容: 如何创建SSL套接字连接? 我真的需要创建密钥库吗?该密钥库应该与我所有的客户端应用程序共享吗? 我用以下代码创建了一个服务器: 我用以下代码在android上创建了一个客户端: 但是当我尝试连接时,会引发以下错误: 问题答案: 您需要一个证书来建立ssl连接,您可以在密钥库中加载证书,也可以加载证书本身。我将显示一些有关keystore选项的示例。 您的代码需要一些参数才能运行: 您

  • 问题内容: 我正在尝试在Python中建立安全的套接字连接,而使用SSL有点麻烦。我已经找到一些有关如何与SSL建立连接的代码示例,但它们都涉及密钥文件。我尝试连接的服务器不需要接收任何密钥或证书。我的问题是,我该如何实质上包装带有SSL的python套接字连接。我知道我应该使用的密码是,协议是。这就是我一直在尝试的: 运行此代码时,没有任何错误,但响应为空。当尝试在命令行中调试此代码时,通过在终

  • 在基本节点http服务器上,如下所示: 如果我一次向服务器发送500个请求,数量是一致的。连接在350附近。由于硬限制设置为500(也),我想知道在新请求启动时如何访问挂起的连接数(本例中最多150)。 查看node-http,有一个名为的事件,因此我认为请求的往返行程如下: 客户端连接到服务器套接字-->3路握手,套接字持续状态(或?!)然后在节点事件中发出连接。 节点http服务器接受这个挂起