CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

高手请进!!如何用socket实现多点通信,就像聊天软件一样。UP者有分

楼主egyptcaesar(笨小孩)2002-07-05 12:52:26 在 VC/MFC / 基础类 提问

如上!! 问题点数:100、回复次数:27Top

1 楼wistaria(听风听雨)回复于 2002-07-05 13:04:45 得分 10

http://www.hoversoft.net/code/2001code/code/vcmfc_winpopup.zip.ld  
   
  使用WinSock的聊天室程序Top

2 楼sans(长风半日)回复于 2002-07-05 13:14:35 得分 3

http://codeguru.com/Top

3 楼jifone(季风)回复于 2002-07-05 13:17:48 得分 3

Private   sub   sckserver_connectrequest(Index   as   Integer,Byval   requestid   as   long)    
  dim   sip   as   string    
  dim   I   as   integer    
  sip=sckserver(0).RemoteHostIP   '获得登录者的IP地址    
  I=1    
  Do   while   I<=sckserver.ubound   '检查是否已经有该地址的记录    
  If   sckserver(I).RemoteHostIP=sip   then   '如有,不必加载新的控件    
  Sckserver(I).Accept   requestid    
  Exit   sub    
  End   if    
  I=I+1    
  Loop    
  Load   sckserver(I)   '否则,加载新的控件    
  Scksrver(I).accept   requestID    
  End   sub    
  注意到:以上的信息交谈实际上都发生在客户机与服务器之间,如果要做成聊天室那样,每个人的话都可以被别人“听到”,那就要在服务器端的DataArrival事件中,把接收到的客户机传来的数据,转发给所有客户机即可。    
  其循环转发信息的代码如下:    
  For   I=1   to   sckserver.count    
  if   sckserver(I).state<>sckclosed   then    
  sckserver(I).SendData   sdata    
  end   if    
  next   ITop

4 楼jfzsl(剿匪总司令)回复于 2002-07-05 13:19:11 得分 3

gzTop

5 楼egyptcaesar(笨小孩)回复于 2002-07-05 13:25:29 得分 0

我要实现多点通讯,我是不是应该在服务器上对每一个连接请求都建立一个Socket??Top

6 楼zzzzzz7()回复于 2002-07-05 13:32:01 得分 5

创建SOCKET数组,有联接请求时,使用socket()初始化Top

7 楼peon(加菲-加菲 一只特立独行的猫)回复于 2002-07-05 13:32:01 得分 3

微软的站点有下:  
  http://msdn.microsoft.com/cccp/msdn-files/026/001/371/mfc_advanced_chatsrvr.exe  
   
  http://msdn.microsoft.com/library/en-us/dnsamples/mfc_advanced_chatter.exeTop

8 楼peon(加菲-加菲 一只特立独行的猫)回复于 2002-07-05 13:34:36 得分 0

我要实现多点通讯,我是不是应该在服务器上对每一个连接请求都建立一个Socket??  
   
  的确需要Top

9 楼egyptcaesar(笨小孩)回复于 2002-07-05 13:47:05 得分 0

可能我没有说清楚,我的意思是,做一个在局域网上点对点聊天软件,但是,可能有很多人同时在线,比如说向QQ一样,我把他的用户名一点击,就可以和对方聊天,把另外一个人一点,就可以和另外一个人聊天。对于socket面向连接的,和无连接的方式。设计思路应该是什么??用哪一个好一些?  
  一台机子可能接受很多连接,是不是对应每一个连接,都应该建立一个socket?另外怎么样知道其他人连线了??在这个应用里,是不是必须有一个服务器,用户登陆时,给服务器发送消息,然后服务器再把这个用户的信息发送到每一个练线的机子上?  
   
  有没有人做过类似的软件,如果什么想法,能不能告诉我!!些了先!!我都快愁死了  
   
  还有一个问题,能不能一台机子上的统一端口多次绑定?Top

10 楼egyptcaesar(笨小孩)回复于 2002-07-05 14:19:04 得分 0

UPTop

11 楼seep(阿冰)回复于 2002-07-05 14:42:07 得分 3

你可以向viper_sh@citiz.net要一个聊天的源代码  
  或者给我发邮件haiquan@comeinfo.com  
  我把他的源代码发给你,写得不错Top

12 楼egyptcaesar(笨小孩)回复于 2002-07-05 15:07:57 得分 0

UPTop

13 楼mfkzj(鹰翔)回复于 2002-07-05 15:16:33 得分 15

需要阿   需要为每一个用户建立一个SOCKET连接    
  反正这样也可以实现     每一个发送信息都有个固定格式   比如钥发给哪几个人   发送对象   是否公开显示   发送内容    
  在每次登陆和退出都发送一个确认消息    
  我以前做过一个你需要的聊天程序   不过很初级   因为后来没有时间研究了   就没有继续下去   如果你需要可以给你看看   mfkzj@263.netTop

14 楼egyptcaesar(笨小孩)回复于 2002-07-05 15:57:19 得分 0

UPTop

15 楼flyingjust(just)回复于 2002-07-05 17:25:18 得分 5

gzTop

16 楼wanghao0727(王浩)回复于 2002-07-05 17:31:53 得分 5

你可以直接使用我的DLL来完成这个工作,它封装了连接的过程。Top

17 楼egyptcaesar(笨小孩)回复于 2002-07-06 00:45:27 得分 0

UPTop

18 楼yuanjun1029()回复于 2002-07-06 09:09:21 得分 5

用UDP不用建连接!!!!Top

19 楼egyptcaesar(笨小孩)回复于 2002-07-06 10:38:50 得分 0

UPTop

20 楼wuxuan(真心英雄)回复于 2002-07-06 18:17:06 得分 5

你可以参见LINUX系统的超级服务器的概念,就是通过管理一个连接服务器,并不需要每一个用户就建立一个连接,如果每个建立的话,QQ就会累死了。  
  Top

21 楼wanghao0727(王浩)回复于 2002-07-06 18:53:44 得分 7

想建立一个流式流接,一定要创建一个新的Socket(还有一种技术叫重叠I/O),QQ使用的是P2P方式,并不是要让大家都与服务器相连。Top

22 楼goldolphin(心向天空)回复于 2002-07-06 19:12:48 得分 8

我做了一个局域网聊天程序,用UDP实现非连接的文本聊天和语音,语音在多人向同一个发送时有一些问题。用TCP实现文件传送。没有服务器端。  
  不过目前有一些BUG,完善中,如果有这方面的问题可以发邮件给我  
  goldolphin@etang.com  
  我在CSDN上放了老版本的下载(只支持文本聊天)  
  http://www.csdn.net/cnshare/soft/11/11094.shtmTop

23 楼sunsea666(少楠)回复于 2002-07-06 20:31:04 得分 5

qq的类似的工具,也在研究,呵呵,UP!Top

24 楼liuhai_2599(大海)回复于 2002-07-06 21:02:20 得分 5

upTop

25 楼RedBiaoJi(WWW)回复于 2002-07-06 23:07:35 得分 5

最简单的模式:  
  you-->server-->the   other     公开聊模式  
   
   
  you----------------->server-->one                 私聊模式  
        同时发送特定标志  
   
  次种模式下,你所有的数据对server都是透明的。Top

26 楼daehappy(追求120%结贴)回复于 2002-07-07 13:45:36 得分 5

up!gz!Top

相关问题

  • Socket编程,聊天软件的问题求助
  • 我想用socket写一个局域网的聊天软件?
  • 聊天软件
  • 局域网聊天软件
  • 我想做一个局域网下的语音聊天软件,大家来谈医坛怎么实现吧!越详细越好!
  • socket实现Client 与 Server 的通信?
  • 局域网聊天软件的问题
  • 求局域网聊天软件
  • C#开发视频聊天软件
  • 怎样用socket实现client/sever通信模型

关键词

  • .net
  • 服务器
  • 连接
  • 聊天
  • socket
  • 模式
  • 用户
  • msdn
  • code
  • server

得分解答快速导航

  • 帖主:egyptcaesar
  • wistaria
  • sans
  • jifone
  • jfzsl
  • zzzzzz7
  • peon
  • seep
  • mfkzj
  • flyingjust
  • wanghao0727
  • yuanjun1029
  • wuxuan
  • wanghao0727
  • goldolphin
  • sunsea666
  • liuhai_2599
  • RedBiaoJi
  • daehappy

相关链接

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

广告也精彩

反馈

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