Hideout chat
1.0.0
使用 java 套接字无需访问互联网的 LAN 聊天应用程序
用户A打开程序,选择名字和头像,点击登录,开始登陆局域网,用户A登录程序会同时启动两个线程,一个线程在UDP服务终端内部(端口号9156),用于等待其他用户登录,里面有另一个线程启动TCP服务端(端口号9155),等待其他用户的Socket连接,同时用户A也会使用UDP广播一个UDP包出去。这个UDP包中包含用户名、ip地址等信息,该UDP包被发送到同一局域网内所有具有相同端口的UDP服务端程序,包括本程序。
如果还有其他在线用户,那么每个在线用户程序UDP服务端都会收到这个UDP包,然后取出用户信息,将用户A添加到在线列表中,因为UDP包中包含了用户A的ip地址,所以每个在线用户使用用户A的ip地址向用户A发送回复。
用户A等待一段时间,就会收到所有在线用户的回复,然后所有在线用户都会将用户A添加到自己的在线列表中。
聊天方法与通常的多线程方式一样,两个设备充当服务器,我们可以说它是一个p2p应用程序。