android使用 socket 如何实现长连接 连接java服务器 serverSocket

发布于 2021-11-29 01:55:52 字数 1461 浏览 677 评论 5

public void run() {
    while (true) {
        try {
            if (socket == null) {
                socket = new Socket("192.168.1.113", 15523);
                dis = socket.getInputStream();
                dos = socket.getOutputStream();
                System.out.println("连接到服务器");
            } else {
                    i = i +1;
                System.out.println("创建"+i);
                BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(dos));
                    bw.write(i);
                    bw.flush();
                    //bw.close();
                    //dos.flush();
            }
        } catch (IOException e) {
            System.out.println("网络连接异常");
        }
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

出现问题是: 总是发送1-2次或者几次服务器serverSocket 就收不到数据了

客户端还是一直发送

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

晚风撩人 2021-12-04 23:25:26

纠正一下,我发的有错别字,是socket中读取而不是过去

裸钻 2021-12-04 14:50:31

我觉得你应该在else中直接用socket过去输入输出流,这样可以保证每次循环都能正常读取,而你现在这样,只是在if中获取了一次,之后的读写还是使用着第一次过去到的流,他可能只是存在于内存中,而不是连着socket了

感情旳空白 2021-12-04 05:29:38

只判断了socket是不是null,dos呢,下面用到dos创建对象了。

倚栏听风 2021-12-03 14:07:31

真机测试

奈何桥上唱咆哮 2021-12-02 11:05:47

模拟机测的么?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文