基于android的socket服务器编程


F 福 建 电 脑 UJIANCOMPUTER 福 建 电 脑2015 年第 8 期 1. 什么是 Socket Socket 在计算机行业通常称为“套接字”,用于描述 IP 地址 和端口,是一个通信链的句柄。网络上的两个程序通过一个双 向的通讯连接实现数据的交换,这个双向链路的一端称为一个 Socket。Socket 通常用来实现客户端和服务端的连接,一个 Socket 由一个 IP 地址和一个端口号唯一确定。但是,Socket 所 支持的协议种类也不是仅仅 TCP/IP 一种,因此两者之间是没有 必然联系的。在 Android 环境下,Socket 编程主要是指基于 TCP/ IP 协议的网络编程。 2. Socket 通讯的过程 Server 端 Listen(监听)某个端口是否有连接请求,Client 端 向 Server 端发出 Connect(连接)请求,Server 端向 Client 端发回 Accept(接受)消息。一个连接就建立起来了。Server 端和 Client 端都可以通过 Send,Write 等方法与对方通信。 对于一个功能齐全的 Socket,都要包含以下基本结构,其 工作过程包含以下四个基本的步骤: (1)创建 Socket; (2)打开连接到 Socket 的输入/出流; (3)按照一定的协议对 Socket 进行读/写操作; (4)关闭 Socket. 3. Android 平台下 Socket 服务器程序设计 一般服务器端要处理多个客户端连接,因此必须使用多线 程技术,首先,服务器端调用 Android Java 提供的 ServerSocket 的构造函数,并赋予 ServerSocekt 的侦听端口号,连接数,创建 服务器端的套接字流,同时完成在服务器端的侦听。 在客户端 进行连接时,ServerSocket 就调用 Accept()函数,接受客户端的 套接字流,生成一个新的 Socket,用于和客户端的通信。而 ServerSocket 则用于继续侦听客户端的连接。在新形成的 Socket 数据流中,即 InputStream,OutputStream。利用 GetInputStream(), GetOutputStream() 创建输入输出流与客户端进行通信。最后每 执行完一个客户端的请求数据流,就用流对象的 close() 进行关 闭,对于整个客户端的连接断开,就用 Socket 的 close() 进行关 闭整个 Socket 连接。参考代码如下: try { //设置服务器端口 mServerSocket = new ServerSocket(SERVERPORT); //创建一个线程池 mExecutorService = Executors.newCachedThreadPool(); System.out.println("start..."); //用来临时保存客户端连接的 Socket 对象 Socket client = null; while (true) { //接收客户连接并添加到 list 中 client = mServerSocket.accept(); mClientList.add(client); //开启一个客户端线程 mExecutorService.execute(new ThreadServer(client)); } } catch (IOException e) { //错误代码处理 } 4. 注意问题和结束语 基于 Android 的 Socket 编程中,特别要注意采用多线程机 制来实现,否则程序程序效率很差。为了保证双方之间在线,必 须固定频率发送心跳包,否则由于网络突然断开,则无法检测 对方是否在线或者正常关闭 Socket,这样就解决了网络断开的 问题导致一方没有及时关闭 socket 的问题。 网络通信功能是手机应用程序必不可少的部分,通过服务 器和其它客户端程序通信可以进行数据传输、网络聊天等功 能,本文仅介绍了基于 Android 的 Socket 编程,并且给了示例代 码,可以通过其开发出功能更强大的网络应用程序。 参考文献: [1]陈南南.基于 C# 的对象间数据传递方法分析及实现[J].电脑与电 信,2011(9). [2]张荣Android 开发与应用 人民邮电出版社,2014. [3]谷岩 利用 Java 的 Socket 编程机制实现在线交谈 计算机工程与设 计 2006.6. [4]阎秀英,周亚建,胡正名.基于 Java 的网络实时远程监控系统设计. 计算机工程,2009.5 作者简介: 周国华,讲师,硕士研究生,常州轻工职业技术学院信息系。 基于 Android 的 Socket 服务器编程 周国华 (常州轻工职业技术学院 江苏 常州 213164) 【摘 要】本文主要介绍了基于 Android 的 Socket 编程,详细说了 Socket 编程原理及 Android 下进行 Socket 编程注 意的一些地方。 【关键词】Android;Socket;服务器 127··

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

xcjciom

贡献于2016-11-23

下载需要 10 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf