Android Socket编程
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。来自百度百科
Socket也叫套接字,应用程序通过socket套接字向网络发出请求或者应答网络发来的请求,所以说socket是通信的基础,socket是支持TCP/IP协议的网络通信的基本操作单元,包含网络通信必需的5种信息:连接使用的协议、本地主机的IP地址、本地进程的协议端口、远程主机的IP地址和园地进程的协议端口。
对于android socket编程,使用的是java.net包下面提供的ServerSocket和Socket类,其中ServerSocket类用来建立服务端程序,socket类用来建立客户端程序。
import java.net.Socket;
Socket类的一些构造方法:
Socket(InetAddress dstAddress,int port,InetAddress localAddress,int localPort);
Socket(InetAddress address,int port,boolean stream);
Socket(SocketImpl impl);
其中的dstAddress就是通信需要的IP地址,host是主机名,port是端口号,stream 指的是socket是流socket还是数据报socket,impl是socket的父类,既可以创建Socket,也可以创建ServerSocket。
ServerSocket:
import java.net.ServerSocket;
ServerSocket接收请求:
ServerSocket servers = new ServerSocket(); Socket socket = servers.accept();
accept()是阻塞函数,当该方法被调用后,将等待客户的请求,直到有一个客户启动并请求连接到相同的端口port,然后accept()将返回一个相对应的Socket,此时,客户端和服务器端都建立了用于通信的Socket。