Android客户端与本地服务器Socket通信
Socket服务器运行结果图:smile:
一.客户端和服务器端的选择:
- 客户端是我们手机端,关于服务器端,只要安装了JDK,自然就拥有通讯的功能,我们只需要在Eclipse或者MyEclipse中写好文章中服务器端的代码,运行起来即可,用accept()方法启动服务器端,等待客户端的连接,在未连接的情况下,服务器端处于堵塞的状态。
二.客户端注意事项
andriod客户端添加网络访问权限
<uses-permission android:name="android.permission.INTERNET" />
对Socket的操作放在非UI线程内进行
要使用正确的IP地址和端口号端口号的范围是0~65535,1024一下的端口被系统分给了一些服务,在cmd窗口执行
netstat -ano
命令可以看到所有端口的使用情况真机进行调试(1、连接上手机,手机开启adb。步骤:设置> 应用程序> 开发>选择USB调试;usb选项有些不可见,具体百度),指定Server的IP地址,此地址为局域网地址,如果是使用WIFI上网,则为PC机的WIFI IP。上图中连接的第二个就是示例。
三.Socket通信
利用ip地址+端口号唯一标示网络中的一个进程,能够唯一标示网络中的进程后,它们就可以利用socket进行通信。
socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用,实现进程在网络中通信。
socket是“打开—读/写—关闭”模式的实现(只能读取对方放在流中的数据),以使用TCP协议通讯的socket为例,其交互流程大概是这样子的
Socket有两种主要的操作方式:面向连接的和无连接的,即TCP和UDP。
面向连接的Socket操作就像一部电话,Socket必须在发送数据之前与目的地的Socket取得连接,一旦连接建立了,Socket就可以使用一个流接口进行打开、读写以及关闭操作。并且,所有发送的数据在另一端都会以相同的顺序被接收。无连接的Socket操作就像一个邮件投递