安卓使用socket实现客户端服务器通信问题
来源:互联网 发布:网管软件限速 编辑:程序博客网 时间:2024/05/20 22:01
这两天再做一个项目,其中一个功能是模拟在线聊天,所以接触了socket网络编程。由于楼主之前从没接触过socket,属于现学现卖,进度十分有限,而且遇到了不少问题。
步骤:
1.首先客户端建立一个socket,服务器建立ServerSocket,ServerSocket参数中给出该服务器监听的端口号(如10118),客户端socket需要两个参数,p1为要连接至的服务器ip地址,p2为端口号,注意这里客户端要使用的端口号必须与服务器监听的端口号一致。
2.socket建立完毕,双方各自建立输入输出流,使用的是BuffereReader和PrintWriter类。这里需要注意一下,两端接收和发送消息的顺序要不同,若服务器端将接收消息写在前发送消息写在后,则客户端要将发送消息写在前接收消息写在后,若双方建立流后都在等待对方消息便会被readLine方法(或有人使用readUTF方法,二者均是阻塞式方法)阻塞,程序若接收不到消息会停在阻塞式方法那里不会继续向下走,双方都在等待对方发送消息疏通readLine(readUTF)方法处,便形成互锁(和java线程中的那个互锁应该不是相同概念吧...),所以注意下顺序问题
3.通信完成后调close方法关闭输入输出流及socket,程序结束
之前我是卡在步骤2那个顺序问题上,导致双方只能连接上但不能互相接收发送消息,点击能够触发通信的按钮一直报错:did not receive expected priority boost on time
后来上网看了一下readLine方法受了点启发改了下顺序可以了。
不知道有人遇到过该问题没,反正我查了一下没查到。如有不对的地方请大家一定及时指出,我只是个初学者,需要大家纠正我的错误
- 安卓使用socket实现客户端服务器通信问题
- C# 使用Socket实现服务器与客户端的通信
- 安卓使用socket建立通信客户端不显示数据
- python socket 实现服务器/客户端通信
- socket实现服务器与客户端通信
- 客户端使用Socket与服务器通信
- 使用C语言socket实现windows pc与ftp服务器通信---socket实现ftp客户端
- 安卓APP客户端与服务器通信
- 使用 Socket 通信实现 FTP 客户端程序
- 使用 Socket 通信实现 FTP 客户端程序
- 使用 Socket 通信实现 FTP 客户端程序
- 使用 Socket 通信实现 FTP 客户端程序
- 使用 Socket 通信实现 FTP 客户端程序
- 使用 Socket 通信实现 FTP 客户端程序
- 使用 Socket 通信实现 FTP 客户端程序
- 使用 Socket 通信实现 FTP 客户端程序
- 使用 Socket 通信实现 FTP 客户端程序
- 使用 Socket 通信实现 FTP 客户端程序
- 指定页面调用文章ECSHOP
- 机器学习之感知机
- 第7课:Spark Streaming源码解读之JobScheduler内幕实现和深度思考
- 负载均衡和高可用性
- 1018 Problem R
- 安卓使用socket实现客户端服务器通信问题
- MyBatis-动态SQL的if、choose、when、otherwise、trim、where、set、foreach使用
- ACdream 1071
- Spring的控制反转(IOC)
- oracle数据库创建索引代码示例
- Easy-题目70:344. Reverse String(增补3)
- 3.2.了解一些74HC595的预备知识并编写其时序函数
- 像360悬浮窗那样,用WindowManager做一个炫酷的悬浮迷你音乐盒(上)
- leetcode 100 Same Tree