日期:2014-05-19  浏览次数:20801 次

socket做多人了聊天程序
前几天做了个socket   点对点的程序(简单的监听发送),很顺利,现在打算做个多人聊天的,分为两种,一种是:与多个人分着聊天,就象qq一

样,有多个朋友,可以和每个人分别聊天。另一种是:想实现多人一起聊天,就象开会一样。

请大家帮我说说上面的流程应该怎么弄?

现在我的进展是和一个人聊天可以,然后在创建一个socket,也就是要和另一个人聊天,就出现socket只能用一次的错误,然后发的信息也都会跑

到与第一个聊天的那个窗口去,也就是两个人的信息都能接,但是发送的时候不管给谁发,都会跑到先连接的那个用户的窗口。

不知道我说清楚了吗,

如果能提供一个与多人聊天的源程序(简单点也可以,但是要多人的),另附加100分,以示感谢!!

------解决方案--------------------
你用Tcpcleint试试
Tcpcleint所带的参数ip 端口
可以解决多人的问题
你就用循环
把当前连接的IP除自己外都发送一片数据
------解决方案--------------------
首先你的程序采用的TCP还是UDP协议?
我想应该是采用固定端口监听,TCP的话为每个会话另外分配端口甚至线程,而UDP的话地址和端口都是封装在报文头里的
不知说的是不是lz所指的
------解决方案--------------------
关注
------解决方案--------------------
如果是TCP的话需要有一个Server端,接受大家的请求,类似一个聊天室,所有Client都登录到Server上来,Server负责转发聊天内容

如果是UDP的话可以利用广播,似乎效率低了点,还可能会丢,但同样可以达到类似开会的目的

建议TCP和UDP混合做,这就比较复杂了,似乎一两句话也数不清楚了,QQ之类的就是混合的
------解决方案--------------------
我有一个用.net Remoting写的多人聊天程序.多一个人聊就建一个对象实例.即可.
------解决方案--------------------
mark
------解决方案--------------------
多人聊天就是服务器开多个线程撒

“现在我的进展是和一个人聊天可以,然后在创建一个socket,也就是要和另一个人聊天,就出现socket只能用一次的错误,然后发的信息也都会跑”

可以用局域网的广播来解决,每个开启的用户都有个socket,不会冲突
示例源码:http://www.cnblogs.com/tuyile006/archive/2006/12/30/607823.aspx