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

解决方案 »

  1.   

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

  2.   

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

  3.   

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

  4.   

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

  5.   

    wangwwq 说的有道理,我试下