1、判断socket连接状态
socket类的方法isClosed()、isConnected()、isInputStreamShutdown()、isOutputStreamShutdown()等,这些方法都是本地端的状态,无法判断远端是否已经断开连接
sendUrgentData,查看文档后得知它会往输出流发送一个字节的数据
3、通信协议定义
协议组成:协议类型、版本号、数据类型、数据长度等
客户端给服务器发送两种类型数据,分别定义协议内容
一种是有效数据,一种是心跳,因此定义两种协议:DataProtocol和PingProtocol,服务器在接收数据时需要分别判断这两种协议格式
4、Socket监听
服务器启动时监听某一个固定端口,客户端需要提前知道服务器的IP及端口号,才能着手启动一个Socket连接
5、客户端如何保持与服务器连接
客户端维护一个线程,每隔固定时间发送一个心跳给服务器