CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

多线程Socket聊天中来自一client的信息怎么发送给别的client?

楼主williamy(williamy)2005-08-01 11:49:19 在 Java / J2SE / 基础类 提问

怎么实现多线程的聊天程序服务器端,我现实做好了这样一个服务器端,主线程有ServerSocket在等待accept(),有client连接的时候就生成一个次线程,这个次线程才是处理client的交互  
  但是我现在有个不懂的地方是   比如:  
  当有多个client连接后,假设只有两个client   分别是client1   client2     怎么把client1发给   server的String   传给client2     ????   我用了一些方法试图去实现,比如在次线程生成的时候把ServerSocket  
  .accept得到的socket放在一个Vector中,把这个Vector全部已经有的Socket都传进次线程,这样就能在client2中发信息给client1   ,但是没有成功啊  
  各位大大,还请指点.希望能给一个简单的程序出来啊,thanx   in   advance 问题点数:20、回复次数:8Top

1 楼hellwindy(夜神·月)回复于 2005-08-01 11:59:58 得分 1

server转发Top

2 楼williamy(williamy)回复于 2005-08-01 12:02:16 得分 0

但是我不知道怎么个转发过程,能不能搞一个程序上来     thanx   in   advanceTop

3 楼wnjer(WNJER)回复于 2005-08-01 14:22:37 得分 0

建一个全局的缓冲区(比如链表什么的)  
  然后将需要发送的信息(内容,目的地等)放入,然后各个线程来周期读取。  
   
  注意线程同步问题。  
  Top

4 楼williamy(williamy)回复于 2005-08-01 14:39:10 得分 0

这个方法我也想过,最开始就是想用一个全局的String     然后主线程中来一个while(true)去调用子线程输出这个String   但是我做不好,   还请各位帮我搞一个例子看看啊   谢谢先了Top

5 楼wangwwq(不开窍)回复于 2005-08-02 12:37:37 得分 0

首先你思路就不对,既然只是转发,需要的只是在   sayClient   上传的包中定义好包结构,包机构中包括接收方客户端的ip和端口就可以了,如果是对所有客户端群发,需要建立一个hashtable存储所有客户端注册的(ip地址-key,socket对象-value),这样的话就可以实现群发(遍历hashtable),单发(找对应的客户端key)就可以了。Top

6 楼wangwwq(不开窍)回复于 2005-08-02 13:03:54 得分 19

也就是你只要做3件事,1,client   链接的时候,存ip和socket入hashtable,client断开的时候清楚。2,接收client信息包的时候判断是否需要转发(一般在包头设标志),需要则存入一个vector。3,建立一个发送线程,轮训vector,vector中的每一条记录内都应该包含接收端的ip,根据hashtable的对应关系去找相应的socket下发消息。Top

7 楼williamy(williamy)回复于 2005-08-03 11:21:15 得分 0

wangwwq   说的有道理,我试下Top

8 楼star_str(生命火花)回复于 2005-08-03 12:40:49 得分 0

可以从服务器组播Top

相关问题

  • 多线程socket!!!
  • Socket的多线程问题
  • 多线程SOCKET的问题!
  • 多线程Socket问题~~
  • socket的多线程问题
  • 多线程 用socket通信
  • 多线程socket问题
  • 如何用多线程来管理每一个socket client的连接?
  • 多线程SOCKET通信中的问题
  • 有关多线程和Socket的问题

关键词

  • 线程
  • client
  • socket
  • 服务器
  • 客户
  • vector
  • 信息
  • 转发
  • 客户端
  • 接收

得分解答快速导航

  • 帖主:williamy
  • hellwindy
  • wangwwq

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

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