这两个程序中用到了自定义协议,自定义协议定义的是一个接口,接口中包含若干个String字符串,赋给他们特殊的字符或者特殊的字符组合,来表示消息的类型。
本例中用UserName来表示服务器端检查接收的是不是客户端传来的用户名信息,如果是用户名信息就怎么处理,如果是正常的聊天信息就怎么处理。
UserList表示客户端检查服务器端发送来的是用户列表还是转发的广播聊天信息。
自定义协议,模拟普通的协议,发送之前在用户名前和后分别加上对应的特殊的字符,相当于“装包”,形式如:UserName+用户名+UserName = 新的用户名,然后把新的用户名传过去。服务器端根据startswith(),endwith()函数来判断前后是不是有对应的协议头和协议尾,进而判断消息类型,然后再“拆包”,就是去掉协议头和协议尾,取出真是的用户名,来做相应的动作。