网络编程(二)socket编程
- 什么是Socket:Socket是java中的一个类,封装了访问目标的IP地址与端口号。还封装了连接目标主机的方法:connect(),Socket其实是网络交互的一种协议
- Socket编程的基本架构
1>服务端
ServerSocket ss=new ServerSocket(8888);
Socket s=ss.accept(); //阻塞
s.getInputStream()
s.getOutputStream()
2>客户端
Socket socket=new Socket("127.0.0.1",8888);
socket.getOutputStream()
socket.getInputStream()
- 工作流程:工作流程是有图的,但是暂时没有时间去找,以后有时间放上来,现在先简单说一下。
- 服务端的基本过程是开启一个ServerSocket,同时指定端口号8888,然后启动accept方法,这个方法是阻塞的,在没有接收到请求前不会跳到下一句,在接收到请求后,跳到下一句新开一个线程来处理客户端的请求
- 客户端的工作流程比较简单,直接发送请求,然后在需要发送的时候通过outputstream发送数据,同时开启一个线程来接受inputstream接收的数据,还见过一种通过available来阻塞等待数据的办法,不推荐。
- 废话不多说,上代码: