Java Socket点对点通信(基于 TCP)
## ![TIM截图20180508131305.jpg](https://image.xsoftlab.net/baike/articleImages/a082167987078b93b7c549104b8ef46d.jpg)
## 介绍
Socket通常称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过Socket向网络发出请求或者应答网络请求。
Socket是在建立网络连接时使用,在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。·
对于一个网络连接来说,socket是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。
Socket服务器端需要在某个端口上开启服务器端类型的类:java.net.ServerSocket,通过accept()方法用于产生“阻塞”,直到接收到一个连接,并且返回一个客户端的Socket对象实例。
“阻塞”是使程序运行暂时“停留”在这个地方,直到一个会话产生,然后程序继续,通常“阻塞”是由循环产生的。
Socket客户端根据服务器端的IP地址和端口号创建一个Socket对象,连接服务器。
服务器端和客户端都持有一个Socket对象,服务器端的Socket从服务器端指向客户端,而客户端的Socket从客户端指向服务器端,就像在服务器端和客户端建立了两条单向的管道。
### Socket服务器端
```java
import java.io.BufferedReader;
import java.io.IO