谁能告诉我,做一个象网易那样的聊天室,用什么方法,不要告诉我是用数据库或读写文件,是不是用多线程,socket协议。来讨论者皆有分。 考虑采用TCP协议。服务器端的ServerSocket。必须采用多线程。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 数据库可能也要,因为有用户登陆了,要纪录用户数据的!用UDP也行,但会丢包了,看你数据要求多高了。服务器多线程,客户单线程就行了! 应该使用数据库加上Java Applet,当然要用多线程技术,这样才可以支持很多人同时在线聊天! 在服务器端采用ServerSocket要用到多线程,即对应每一个用户一个Socket线程,在客户端采用Socket单线程可以实现,不过在服务器与客户端对应的Socket都用多线程实现最好,即一个线程处理数据,一个线程读取数据,因为网络上的数据读取时间是无法预料的,不象读取本地文件一样。数据库是必须的,用来记录用户信息及聊天信息 做聊天室很多方法,用PHP/JSP这类的服务器脚本语言还是想用applet+server来做?如果是jsp的方法,就不存在多线程的问题,但你肯定要用数据库或是文本文件保存用户信息及聊天信息了。jsp没有asp中application对象,聊天信息应如何保存呢?数据库中建一个临时表是一种方法,当然在服务器的servlet中放一个vector也不失为一种方法,不过我没仔细想过是否有问题。如果是applet加一个自己写的聊天服务器,就要考虑用多线程了,还有serversocket了,一般socket-serversocket是基于TCP的,建议你用TCP来做吧,可靠点,聊天又不是什么大数据量的操作,有一下没一下的,好象没必要用UDP吧,(我个人感觉)。你可以在server放一个vector,大家的信息都存在这里,在socket中读写object方式即可。当然聊天室涉及到的不止这些,给点我的意见大家继续讨论。 这种问题,在清华bbs上有,完全的解答,你去看看呀,大家有空到标题:"帮我解决了,我一定送分的!"我需要大家的帮忙 我是想在php中实现,用java编写服务器端。客户端是用java写了个javabean,用来连接服务器,发送和接受数据。我把这个javabean放在php中调用。php中调用javabean连接服务器端成功后,但是发送数据时,服务器端显示java.net.SocketException: Connection aborted by peer: socket write error,可我在jbuilder5中调试时,发送数据是没有问题的。是不是不能在php等脚本语言中发送数据, 问题具体多了。你是如何在PHP中调用javabean的?是用了javascript吗?这样其实也就是一个applet与server通讯的问题了。应该没有问题。但是我不知道你这个含有javabean的php文件是如何写的。提醒你注意一点php是在server端执行的,但javabean要到客户端才执行。有时间差的。 php调用javabean就几句,不能用javascript(javascript 只能调用客户端的)php.ini 中的java.class.path = "c:\javaclass"把写好的javabean(chat.class)考到 c:\javaclass下在php 中调用chat.class来里面的方法。<? $chat = new Java("chat"); $chat->login($hostname,$hostport,$nickname);?>我写的这个javabean,在jbulider5中试过,连接,发送和接受都没问题。不过在php中调用,我试了很多次,发送都有问题。还有在applet读写socket,在ie运行会有securityPermission问题,也不行。我现在只好用数据库了。 请问如何声明一个通用list 怎样读懂Java源文件呢? java中的引用和C++中的引用一样吗? 哪位有jview的教程呢。。。 java 如何telnet到一台机器啊 初级:NoClassDefFoundError错误。 程序员好做吗? 调试问题:import debug.*; 大家帮个忙,请问登录页面的用户名和密码如何同数据库的密码相判断?? 拼图游戏思路断了!各位大神只要告诉我一点思路就行了! Java Applet可以往服务器上写文件吗? 请问jdb调试工具的使用方法并介绍相关教程!谢谢!
数据库是必须的,用来记录用户信息及聊天信息
做聊天室很多方法,用PHP/JSP这类的服务器脚本语言还是想用applet+server来做?如果是jsp的方法,就不存在多线程的问题,但你肯定要用数据库或是文本文件保存用户信息及聊天信息了。jsp没有asp中application对象,聊天信息应如何保存呢?数据库中建一个临时表是一种方法,当然在服务器的servlet中放一个vector也不失为一种方法,不过我没仔细想过是否有问题。如果是applet加一个自己写的聊天服务器,就要考虑用多线程了,还有serversocket了,一般socket-serversocket是基于TCP的,建议你用TCP来做吧,可靠点,聊天又不是什么大数据量的操作,有一下没一下的,好象没必要用UDP吧,(我个人感觉)。你可以在server放一个vector,大家的信息都存在这里,在socket中读写object方式即可。当然聊天室涉及到的不止这些,给点我的意见大家继续讨论。
客户端是用java写了个javabean,用来连接服务器,发送和接受数据。
我把这个javabean放在php中调用。php中调用javabean连接服务器端成功后,但是发送数据时,服务器端显示java.net.SocketException: Connection aborted by peer: socket write error,可我在jbuilder5中调试时,发送数据是没有问题的。
是不是不能在php等脚本语言中发送数据,
问题具体多了。你是如何在PHP中调用javabean的?是用了javascript吗?
这样其实也就是一个applet与server通讯的问题了。
应该没有问题。但是我不知道你这个含有javabean的php文件是如何写的。提醒你注意一点php是在server端执行的,但javabean要到客户端才执行。有时间差的。
php调用javabean就几句,不能用javascript(javascript 只能调用客户端的)
php.ini 中的java.class.path = "c:\javaclass"
把写好的javabean(chat.class)考到 c:\javaclass下
在php 中调用chat.class来里面的方法。
<?
$chat = new Java("chat");
$chat->login($hostname,$hostport,$nickname);
?>
我写的这个javabean,在jbulider5中试过,连接,发送和接受都没问题。
不过在php中调用,我试了很多次,发送都有问题。还有在applet读写socket,在ie运行会有securityPermission问题,也不行。
我现在只好用数据库了。