通常也称作"套接字",用于描写叙述IP地址和port,是一个通信链的句柄。在Internet上的主机一般执行了多个服务软件,同一时候提供几种服务。
每种服务都打开一个Socket。并绑定到一个port上,不同的port相应于不同的服务。
网络上的两个程序通过一个双向的通讯连接实现数据的交换。这个双向链路的一端称为一个Socket。
Socket通经常使用来实现客户方和服务方的连接。Socket是TCP/IP协议的一个十分流行的编程界面,一个Socket由一个IP地址和一个port号唯一确定。
在java中。Socket和ServerSocket类库位于java .net包中。ServerSocket用于server端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例。操作这个实例。完毕所需的会话。
以下通过一个极为简单的client和服务端的连接样例演示下最主要的android socket通信:
服务端的代码,在服务端特定的port9999监听client请求,一旦有请求。便会运行,而后继续监听。
使用accept()这个堵塞函数,就是该方法被调用后一直等待client的请求。直到有请求且连接到同一个port,accept()返回一个相应于client的Socket。本例中非常easy,服务端不断监听,一旦有请求就输出一段信息:
以下是androidclient的相关内容,界面有一个button。点击后请求服务端的制定port,然后显示服务端的内容,值得注意的是在android4.0以上的系统中。是不同意在主线程里面去运行网络相关的请求。否则会报错:NetworkOnMainThreadException,所以本例中新开辟一个线程初始化socket的内容:
效果图例如以下:
另外在配置文件里记得加上权限:<uses-permission android:name="android.permission.INTERNET">