我一直在构建聊天客户端服务器/客户端应用程序。除了一件我似乎无法弄清楚的事情之外,我已经让大多数事情变得更好。当客户端尝试连接到服务器时,我希望服务器检查列表框以查看用户是否存在。如果用户不存在,请按正常方式继续操作,但如果确实存在,则将数据包或其他内容发送回该客户端,仅说明已使用用户名请选择其他用户。
我想过这样做的几种方法,但不确定它们是否是最佳方式。
在单独的端口上创建第二个Winsock控件,让客户端连接到该端口,首先检查用户名,然后连接到另一个端口加入聊天。我可以通过这种方法看到的唯一问题是,如果有多个人连接到这个Winsock,我仍然使用原始的Winsock处理同样的问题。
使用当前要求连接的索引号创建变量,使用另一个保存用户名的变量。检查用户列表后,使用变量来标识客户端并仅将数据发送到该客户端。
我是Winsock编程的新手,所以这可能是非常简单的事情,而且我非常努力。我需要一些见解,甚至一些例子也不错。
答案 0 :(得分:0)
要使用套接字执行任何操作,您必须先接受它。通常,您有一个侦听套接字和一个“备用”套接字列表。当您接受连接时,将其传递给其中一个备用套接字,然后仅为该客户端执行任何工作。
TL:DR;接收所有连接,然后在收到名称时,根据需要进行响应,可能会断开连接或要求他们重试。