基于JAVA的多人聊天室
怎么用JAVA实现一个多人图文聊天室,系统的主要功能是实现群聊和私聊还要能发送图片文件,我想问下C/S和B/S怎么实现聊天室的???不需要代码,只要能说明怎么个实现就行...
怎么用JAVA实现一个多人图文聊天室,系统的主要功能是实现群聊和私聊还要能发送图片文件,我想问下C/S和B/S怎么实现聊天室的???不需要代码,只要能说明怎么个实现就行
展开
6个回答
展开全部
用CS模式,那就太简单了。。没什么多说的。java.net.Socket
至于B/S模式吧,其他的都还简单点,发送文件那个估计不太简单。
毕竟浏览器 上进行文件传输,很麻烦。
可以使用下GWT框架,基于ajax技术,,如果觉得界面难看。可以用GXT
至于B/S模式吧,其他的都还简单点,发送文件那个估计不太简单。
毕竟浏览器 上进行文件传输,很麻烦。
可以使用下GWT框架,基于ajax技术,,如果觉得界面难看。可以用GXT
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CS 模式吧 类似QQ
socket + 多线程 实现
socket + 多线程 实现
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java里面有一个socket, 用这个类能实现
至于你说的图片也能显示的, 有一个控件叫什么名字我忘了, 在C#里面叫做richbox
你自己找一下吧
至于你说的图片也能显示的, 有一个控件叫什么名字我忘了, 在C#里面叫做richbox
你自己找一下吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cs模式实现起来,效率上是不需要考虑的,而bs模式效率是就很差了,我知道的就是flash+socket,ajax轮询,还有一个就服务器推送技术,比如plushlet,这个东西研究了一下,不过,感觉效率上还是不尽人意的,大概就是后台和前台是一直保持连击的,没断过,原来看过google做了一个类是与的,效率感觉多不错,前台就纯html代码,没用flash,不过不知道是怎么做的,地址也找不到了,你可以找找试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用socket就可以了bs/或者cs都可以实现 ,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.C/S中一般采用socket+多线程+IO+Swing或applet技术,思路是这样的:
在服务器端建立一个连接端口,专门用来让客户端连接服务端的,并且不断监听连接请求,当有用户连接时,为登录的用户开启一个端口,并且将这个端口放在一个全局的List中,还需要给这个用户分配一个线程,用来不断监听List中的端口是否有新的连接请求,有的话,则为全部或者指定的端口发送信息(使用IO流)。
而在客户端中在连接上服务端后,同时开启一个线程,不断的监听服务端是否有信息发送过来。在客户端发送信息的时候,则连接通过socket向服务器端发送信息。
至于图片或者文件,则是类似的原理,不再多讲.
2.B/S中一般采用servlet+ajax+js.在用户登录的时候记录下他的session或者用户信息存放在全局Map中,以用户名或session为key,消息内容List为value。当用户发送信息并提交的时候,后台收到信息,并根用户对象,然后据发送的对象不同(群聊或私聊),从Map中遍历出指定的聊天,存放消息内容的list中加入所发送的消息。
而客户在聊天页面中,需要通过ajax不断的去调用访问后台,去查看是否有新的消息,有则通过js,将信息在页面中显示出来
至于传送文件,可以考虑使用服务器中转的方式进行,不过这个方法不是很好,建议另外查询一些资料
在服务器端建立一个连接端口,专门用来让客户端连接服务端的,并且不断监听连接请求,当有用户连接时,为登录的用户开启一个端口,并且将这个端口放在一个全局的List中,还需要给这个用户分配一个线程,用来不断监听List中的端口是否有新的连接请求,有的话,则为全部或者指定的端口发送信息(使用IO流)。
而在客户端中在连接上服务端后,同时开启一个线程,不断的监听服务端是否有信息发送过来。在客户端发送信息的时候,则连接通过socket向服务器端发送信息。
至于图片或者文件,则是类似的原理,不再多讲.
2.B/S中一般采用servlet+ajax+js.在用户登录的时候记录下他的session或者用户信息存放在全局Map中,以用户名或session为key,消息内容List为value。当用户发送信息并提交的时候,后台收到信息,并根用户对象,然后据发送的对象不同(群聊或私聊),从Map中遍历出指定的聊天,存放消息内容的list中加入所发送的消息。
而客户在聊天页面中,需要通过ajax不断的去调用访问后台,去查看是否有新的消息,有则通过js,将信息在页面中显示出来
至于传送文件,可以考虑使用服务器中转的方式进行,不过这个方法不是很好,建议另外查询一些资料
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询