我正在开发一个点对点聊天程序,但遇到了一个问题:同时运行客户端和服务器。我不希望有专用服务器来管理连接。我相信解决方案可能是异步直接连接,但我不确定。
我想要完成的是能够在两台主机之间运行该程序,该程序将启动并开始尝试连接到由文本框指定的 IP 地址。同时,它也会开始监听 localhost ip 地址上的传入连接。
***我正在使用 tcp,因为万一某些东西被损坏,消息将无法被读取(它是加密的)
问题: 1) 可以想象,客户端可能会在其他程序尝试连接之前等待一段时间。那么是否必须使用某种形式的循环?如果是这样,怎么做?
2)我假设我需要使用多线程,一个线程用于服务器部分,一个线程用于客户端部分,但问题是使它们无法挂起。由于这两个程序是相同的,因此有一种方法可以监听并同时尝试连接到另一台主机。
3)我也无法让我的服务器监听到它的连接,并且不知道如何让它自动从我的计算机中提取 IP 地址。
谢谢你的帮助。
编辑:这仅在 LAN 上。