C语言问题:局域网聊天系统中的服务器怎么区分不同的客户端并把数据传给客户端?

C语言问题:局域网聊天系统中的服务器怎么区分不同的客户端并把数据传给客户端?,第1张

通常服务器是这样的:

struct sockaddr clientAddr

int ret = accept(s,&clientAddr,sizeof(struct sockaddr))

if(ret >0)

{

....

}

SOCKET PASCAL accept( SOCKET s, struct sockaddr * addr,int * addrlen)

请看accept原型 第2个参数为指针 。也就是如果accept成功 那么服务器端就会得到客户端的struct sockaddr结构体数据,里面包含了客户的ip port等。

实际中要区分的话,应该是有类似于自拟协议,比如约定好,客户端连上服务器后,主动发送包含身份的信息给服务器,服务器识别后,才开始为该客户服务。

使用系统自带的通讯工具,在运行中输入 "winchart",弹出对话窗口,点击对话-拨号,将显示出局域网内的电脑群组,选择指定电脑后确定。

若此时在拨叫其他网内用户的时候总是显示另一部计算机无响应,则必须运行“聊天”或启动网络 DDE 服务才能应答呼叫。要启动“网络 DDE 服务”,请依次单击“开始”、“控制面板”,单击“性能和维护”,然后单击“管理工具”。依次双击“计算机管理”、“服务和应用”、“服务”。在详细信息窗格中,单击“网络 DDE”。在“操作”菜单上,单击“启动”。

要在每次启动计算机时网络 DDE 服务自动启动,请依次单击“开始”、“控制面板”,单击“性能和维护”,然后单击“管理工具”。双击“计算机管理”,接着双击“服务和应用”,然后双击“服务”。在详细信息窗格中,单击“网络 DDE”。在“操作”菜单上,单击“属性”。在“常规”选项卡上的“启动类型”中,选择“自动”,然后单击“确定”。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/285550.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-22
下一篇2023-04-22

发表评论

登录后才能评论

评论列表(0条)

    保存