Android(安卓)应用开发技术 Android(安卓)应用开发技术 Socket通信.pptxVIP

Android(安卓)应用开发技术 Android(安卓)应用开发技术 Socket通信.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
学习目标01知识目标掌握ServerSocket与客户端Socket通信02能力目标会使用ServerSocket与客户端Socket通信TCP协议下的通讯模型Socket工作流程:首先有两部分客户端和服务器端,客户端需要Socket这个类的对象,而服务器端需要ServerSocket这个类的对象,由客户端Socket发送一个请求,服务器端的ServerSocket在计算机的某一个端口号上进行监听,监听客户端发送的请求之后,那么客户端和服务器端的一个通讯通道就建立起来了,这时候既可以从客户端向服务器端发送数据,服务器端也可以给客户端相应的响应。在客户端发送数据的时候我们需要用到IO流里面的OutputStream,通过这个OutputStream把数据发送给服务器端,服务器端用InputStream来读取客户端当中用OutputStream所写入的数据。Socket 通信过程Socket 通信过程①服务器建立监听过程,监听每个端口是否要求进行通信。②客户端创建一个Socket对象,向服务器端发送连接请求。③服务器监听到客户端的连接请求,创建一个Socket,与客户端进行通信,服务器端与客户端之间的通信管道正式建立起来。④建立接收和发送两个缓存区,并打开Socket及其输入、输出流。⑤根据协议读写Socket内容。⑥通信结束服务器端和客户端之间的通信管道关闭同时意味着关闭Socket。示例:简易聊天室通过Socket编程实现一个简易聊天室。客户端完成后的运行效果如图。在该客户端的界面中,使用了一个TextView控件来显示聊天记录。为了方便查看,将两个用户也放到了一个界面中,实际上应该启动两个模拟器,分别作为两个用户的客户端,此处是为了方便操作才这么做的。示例:简易聊天室 – 服务器端ServerSocket1.新建了一个Java工程作为服务器端。在该Java工程中,我们应该完成以下的操作。(1)指定端口实例化一个ServerSocket,并调用ServerSocket的accept()方法在等待客户端连接期间造成阻塞。(2)每当接收到客户端的Socket请求时,服务器端也相应的创建一个Socket,并将该Socket存入ArrayList中。与此同时,启动一个ServerThread线程来为该客户端Socket服务。示例:简易聊天室 – 服务器端ServerSocket(1)-(2)两步操作,可以通过以下的代码来实现。public class MyServer { //定义ServerSocket的端口号 private static final int SOCKET_PORT = 50000; //使用ArrayList存储所有的Socket public static ArrayListSocket socketList = new ArrayListSocket(); public void initMyServer() { try { //创建一个ServerSocket,用于监听客户端Socket的连接请求 ServerSocket serverSocket = new ServerSocket(SOCKET_PORT); while(true) { //每当接收到客户端的Socket请求,服务器端也相应创建一个Socket Socket socket = serverSocket.accept(); socketList.add(socket); //每连接一个客户端,启动一个ServerThread线程为该客户端服务 new Thread(new ServerThread(socket)).start(); } }catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { MyServer myServer = new MyServer(); myServer.initMyServer(); }}示例:简易聊天室 – 服务器端ServerSocket(3)在启动的ServerThread线程中,我们需要将读到的客户端内容(也就是某一个客户端Socket发送给服务器端的数据),发送给其他的所有客户端Socket,实现信息的广播。其中,在packMessage()方法中,我们对要广播的数据进行了包装。因为要分辨出服务器接收到的消息是来自哪一个客户端Socket的,我们对客户端Socket发送的消息也进行了包装,方法是在消息的头部加上USER_ONE来代表用户往事如风,在消息的头部加上USER_TWO来代表用户依旧淡然。 示例:简易聊天室 – 服务器端ServerSocket操作(3)代码:publ

您可能关注的文档

文档评论(0)

WanDocx + 关注
实名认证
文档贡献者

大部分文档都有全套资料,如需打包优惠下载,请留言联系。 所有资料均来源于互联网公开下载资源,如有侵权,请联系管理员及时删除。

1亿VIP精品文档

相关文档