考虑采用TCP协议。服务器端的ServerSocket。必须采用多线程。

解决方案 »

  1.   

    数据库可能也要,因为有用户登陆了,要纪录用户数据的!用UDP也行,但会丢包了,看你数据要求多高了。服务器多线程,客户单线程就行了!
      

  2.   

    应该使用数据库加上Java Applet,当然要用多线程技术,这样才可以支持很多人同时在线聊天!
      

  3.   

    在服务器端采用ServerSocket要用到多线程,即对应每一个用户一个Socket线程,在客户端采用Socket单线程可以实现,不过在服务器与客户端对应的Socket都用多线程实现最好,即一个线程处理数据,一个线程读取数据,因为网络上的数据读取时间是无法预料的,不象读取本地文件一样。
    数据库是必须的,用来记录用户信息及聊天信息
      

  4.   


    做聊天室很多方法,用PHP/JSP这类的服务器脚本语言还是想用applet+server来做?如果是jsp的方法,就不存在多线程的问题,但你肯定要用数据库或是文本文件保存用户信息及聊天信息了。jsp没有asp中application对象,聊天信息应如何保存呢?数据库中建一个临时表是一种方法,当然在服务器的servlet中放一个vector也不失为一种方法,不过我没仔细想过是否有问题。如果是applet加一个自己写的聊天服务器,就要考虑用多线程了,还有serversocket了,一般socket-serversocket是基于TCP的,建议你用TCP来做吧,可靠点,聊天又不是什么大数据量的操作,有一下没一下的,好象没必要用UDP吧,(我个人感觉)。你可以在server放一个vector,大家的信息都存在这里,在socket中读写object方式即可。当然聊天室涉及到的不止这些,给点我的意见大家继续讨论。
      

  5.   

    这种问题,在清华bbs上有,完全的解答,你去看看呀,大家有空到标题:"帮我解决了,我一定送分的!"我需要大家的帮忙
      

  6.   

    我是想在php中实现,用java编写服务器端。
    客户端是用java写了个javabean,用来连接服务器,发送和接受数据。
    我把这个javabean放在php中调用。php中调用javabean连接服务器端成功后,但是发送数据时,服务器端显示java.net.SocketException: Connection aborted by peer: socket write error,可我在jbuilder5中调试时,发送数据是没有问题的。
    是不是不能在php等脚本语言中发送数据,
      

  7.   


    问题具体多了。你是如何在PHP中调用javabean的?是用了javascript吗?
    这样其实也就是一个applet与server通讯的问题了。
    应该没有问题。但是我不知道你这个含有javabean的php文件是如何写的。提醒你注意一点php是在server端执行的,但javabean要到客户端才执行。有时间差的。
      

  8.   


    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问题,也不行。
    我现在只好用数据库了。