当前位置: 技术问答>java相关
谁能告诉我,做一个象网易那样的聊天室,用什么方法,不要告诉我是用数据库或读写文件,是不是用多线程,socket协议。来讨论者皆有分。
来源: 互联网 发布时间:2015-02-07
本文导语: | 做聊天室很多方法,用PHP/JSP这类的服务器脚本语言还是想用applet+server来做? 如果是jsp的方法,就不存在多线程的问题,但你肯定要用数据库或是文本文件保存用户信息及聊天信息了。jsp没有asp中application对象,聊天信...
|
做聊天室很多方法,用PHP/JSP这类的服务器脚本语言还是想用applet+server来做?
如果是jsp的方法,就不存在多线程的问题,但你肯定要用数据库或是文本文件保存用户信息及聊天信息了。jsp没有asp中application对象,聊天信息应如何保存呢?数据库中建一个临时表是一种方法,当然在服务器的servlet中放一个vector也不失为一种方法,不过我没仔细想过是否有问题。
如果是applet加一个自己写的聊天服务器,就要考虑用多线程了,还有serversocket了,一般socket-serversocket是基于TCP的,建议你用TCP来做吧,可靠点,聊天又不是什么大数据量的操作,有一下没一下的,好象没必要用UDP吧,(我个人感觉)。
你可以在server放一个vector,大家的信息都存在这里,在socket中读写object方式即可。
当然聊天室涉及到的不止这些,给点我的意见大家继续讨论。
|
在服务器端采用ServerSocket要用到多线程,即对应每一个用户一个Socket线程,在客户端采用Socket单线程可以实现,不过在服务器与客户端对应的Socket都用多线程实现最好,即一个线程处理数据,一个线程读取数据,因为网络上的数据读取时间是无法预料的,不象读取本地文件一样。
数据库是必须的,用来记录用户信息及聊天信息
数据库是必须的,用来记录用户信息及聊天信息
|
考虑采用TCP协议。服务器端的ServerSocket。必须采用多线程。
|
数据库可能也要,因为有用户登陆了,要纪录用户数据的!用UDP也行,但会丢包了,看你数据要求多高了。服务器多线程,客户单线程就行了!
|
应该使用数据库加上Java Applet,当然要用多线程技术,这样才可以支持很多人同时在线聊天!
|
这种问题,在清华bbs上有,完全的解答,你去看看呀,
大家有空到标题:"帮我解决了,我一定送分的!"我需要大家的帮忙
大家有空到标题:"帮我解决了,我一定送分的!"我需要大家的帮忙
|
用jsp和数据库就行
|
应该要吧,要不怎么可以实现那么多人一起使用!
数据库可能不要涉及,因为没法查聊天记录!
数据库可能不要涉及,因为没法查聊天记录!
|
用udp 啊。
|
关注
|
我来学习一下!
|
UP
|
gz