CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  网络编程

服务器socket如何确定发给哪个客户端?

楼主gxrwdsq()2006-02-16 15:52:16 在 VC/MFC / 网络编程 提问

服务器和客户端都用WSAAsyncSelect模式,  
  void   Cmydlg::Onaccept(SOCKET   pSock)  
  {  
  SOCKADDR_IN   cliaddr;  
  int   len=sizeof(cliaddr);  
  transock=accept(pSock,(SOCKADDR*)&cliaddr,&len);  
  WSAAsyncSelect(transock,m_hWnd,NETWORK_MESSAGE,FD_READ|FD_WRITE);  
  }  
  如果有多个客户端连接的话,服务器的send函数是发给哪个客户端的,如何实现发给指定客户端?  
  谢谢! 问题点数:20、回复次数:7Top

1 楼FengSC(小猪快跑)回复于 2006-02-16 15:59:09 得分 0

accept得到的socket,就是对应客户断连接的,直接发给它就可以了。Top

2 楼striking(庸人自扰)回复于 2006-02-16 16:13:12 得分 0

transock=accept(pSock,(SOCKADDR*)&cliaddr,&len);  
   
  cliaddr包含了客户的信息.   ip   和端口Top

3 楼gxrwdsq()回复于 2006-02-17 09:18:57 得分 0

可是send函数int   PASCAL   FAR   send   (SOCKET   s,   const   char   FAR   *   buf,   int   len,   int   flags)  
  第一个参数应该是发送端的socket吧,  
  该函数并没有客户端的任何信息,  
  是不是说一旦有连接来的时候执行accept函数,建立新socket,而又有连接来,又建立个socket  
  那第一个建立的socket还在么,应该不在了吧,  
  我想建个socket数组应该能行吧?  
   
  我刚开始学socket,对一些原理不是很明白,忘大家指教!Top

4 楼redf0x_1(雪逸红狐)回复于 2006-02-17 10:02:10 得分 0

第一个SOCKET是发送端的SOCKET  
  当执行accept函数时,会返回一个socket,该socket就是为刚刚接受到的连接创建的新的socket  
  而原先的socket(即执行accept的socket)并不会消失,除非你手动撤除了该SOCKET,它才会消失  
  当然可以建立SOCKET数组Top

5 楼level1979(岳麓飘湘)回复于 2006-02-17 12:03:35 得分 10

一般来说服务器端的一个Socket对应一个客户端,也就是说,如果你在客户端连接时对连接上的Socket进行标示,那么就可以向特定的客户端通信了Top

6 楼beyondtkl(大龙驹<*好久没来了,兄弟们好吧。*>)回复于 2006-02-17 13:04:22 得分 10

可是send函数int   PASCAL   FAR   send   (SOCKET   s,   const   char   FAR   *   buf,   int   len,   int   flags)  
  第一个参数应该是发送端的socket吧,  
  该函数并没有客户端的任何信息,  
  是不是说一旦有连接来的时候执行accept函数,建立新socket,而又有连接来,又建立个socket  
  那第一个建立的socket还在么,应该不在了吧,  
  我想建个socket数组应该能行吧?  
   
  我刚开始学socket,对一些原理不是很明白,忘大家指教!  
   
  ----------  
  这样   可以啊。你把先前建立的socket连接保存起来就是了。Top

7 楼Hylas(羽心)回复于 2006-02-17 17:33:55 得分 0

在通信层,socket   对应连接  
  在应用层,搞一个登入,把socket---client对应起来  
   
  通信层,操作socket  
  应用层,操作clientTop

相关问题

  • 实现qq那样的发送消息,客户发给服务器,服务器如何发给指定的客户
  • socket服务器端与客户端的连接
  • Socket客户端该如何确定与服务器连接?
  • 服务器未开SOCKET,客户机如何上OICQ?
  • socket客户端,如何判断服务器是否断开。
  • 创建socket客户端,往服务器发送数据包,
  • 怎样才能把服务器端组成的试卷自动发给客户端?
  • 急急急急,关于监听通过gprs由服务器发给客户端的消息
  • 服务器和客户机
  • 服务器通知客户

关键词

  • socket
  • 函数
  • 客户
  • 连接
  • 服务器
  • 执行
  • 信息
  • 客户端
  • cliaddr
  • 发给

得分解答快速导航

  • 帖主:gxrwdsq
  • level1979
  • beyondtkl

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo