当前位置:  技术问答>java相关

求助:编写聊天服务器遇到的问题

    来源: 互联网  发布时间:2015-09-25

    本文导语:  使用java编写聊天服务器,使用ServerSocket监听端口,使用了多线程处理程序 编写了一个ClientTest测试程序,ClientTest通过System.in取得键盘输入,通过writeUTF发出,Server端得到后发到各个Client端。程序都可以正常运行,没...

使用java编写聊天服务器,使用ServerSocket监听端口,使用了多线程处理程序

编写了一个ClientTest测试程序,ClientTest通过System.in取得键盘输入,通过writeUTF发出,Server端得到后发到各个Client端。程序都可以正常运行,没有出现错误。可以发送信息到各个client端。

现在要做的是Server和浏览器通讯的交互,Server监听端口为1800, 浏览器http://127.0.0.1:1800,建立连接。但问题是Server不能和浏览器进行交互,也就是说,Server不能向浏览器发送信息,通过url提交的信息浏览器也无法接受到。这个工作该如何处理?如何让Server发送信息,在浏览器上显示?要模范http协议?还要做什么?
我如何才能得到http通过get方法提交的数据信息?

|
注:上面的servlet应为applet,手误……

|
> Server不能向浏览器发送信息,通过url提交的信息浏览器也无法接受到
http协议是无状态协议,即只有客户端向服务器端发出请求(包括get put head 等等action),服务器根据请求的内容作出响应。无法做到服务器主动向浏览器推送数据。所谓的“推”技术一般都是基于socket的applet或者刷新(巧妙的无非是局部刷新)。通过url提交的信息浏览器也无法接受到---服务器向浏览器提交?显然不可能咯,呵呵。
所以,根据http协议来看,浏览器不向服务器发出请求,服务器根本不知道你的存在,或者说不care,如何能推,如何能实时呢?

如果你的意思是要通过浏览器访问服务器的8000,那用URLConnection就好了,只要构造一个合适的url,在url里面带上必需的参数即可。
不过更好的方法是在服务器端运行一个servlet,通过他去连接你的聊天室服务器。这样的话,webchat通过和servlet交互即可。不过不好的地方是这不是实时聊天。
实时聊天,也就所谓的“推”,最好的方法是做一个applet来做client
通讯协议也就不一定要用http协议来包装了(用http协议的好处是一般的防火墙不限制)。
如果用applet还可以通过javascript发出浏览请求,也很方便。


|
java有安全控制的,你要修改它的policy文件,开放1800段口才行,
另外,你如果要自己监听端口的话,要自己根据http协议去解释得到
的消息,如果是和浏览器交互的话,最好还是加一层servlet进去

|
你应该去看看一些关于HTTP协议的东西
我建议你到网上去搜索一下
有许多简单的服务器例子你可以去看一看

|
用URL和URLConnection应该可以封装HTTP的连接了,不用自己实现HTTP协议。

URL url=new URL("http://1`27.0.0.1:8000");
URLConnection conn=new URLConnection(url);
conn.get**Stream()
。。。

另外"rn"最好写为'u0d0a',因为java中却省将一个字符作为16位而不是8位
不过可以做“ISO-8859-1”等编码改变

    
 
 

您可能感兴趣的文章:

  • 求助:用java如何编写生成pdf格式报表的程序?
  • 求助,LINUX下SHEEL 如何编写
  • 求助:Linux下ftp客户端代码编写
  • 求助!! 在QTE 下如何编写播放flash的 程序????
  • shell脚本编写!菜鸟求助
  • 求助!我编写的程序如何运行?
  • 求助,编写一个SHELL程序,完成简单功能。具体说明见贴内。谢谢!
  • 求助各位大侠:Linux下Ftp客户端程序编写
  • bash脚本编写求助
  • 求助大家帮忙编写linux遍历进程程序
  • 移植LINUX程序时遇到的问题,求助!!!(急) iis7站长之家
  • 急~~求助!用C++编写utf8转换成GBK码
  • 求助:在Qt编写的程序下如何调用动态连接库中的函数!
  • 100分+100分 aix64位编程求助,如何编写64位c程序啊?谢谢大家!!
  • [求助]Shell编写apache日志分析脚本
  • 求助,安装redhat 9.0遇到问题
  • 高分求助:谁调过javamail的程序,我遇到了一些麻烦,请求帮助!!!
  • 【求助】小弟现在正在学习Linux,遇到一个问题,请教各位
  • 【求助】用U盘做fedora系统盘遇到的问题
  • 求助:在Linux上,当退出vi,遇到“Can't write viminfo file /root/.viminfo!”
  • 100分求助:磁盘格式转换后遇到的问题
  • [求助]分析这种特效菜单实现时遇到的问题!请帮助!---在线恭候!!!
  • 编译QT程序时遇到的问题(求助)
  • 紧急求助,在配置无盘工作站时遇到的dhcp问题。
  • 安装matlab 2008b 遇到问题了,求助
  • 紧急求助!ntpdate遇到问题
  • 求助!!在linux下如何用c写CGI文件上传程序遇到的问题。
  • 求助,LINUX的奇异事件你们遇到过么?
  • 求助达人,USB转串口是否遇到过多台设备接入机器,串口冲突?
  • 移植LINUX程序时遇到的问题,求助!!!(急)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求助:关于聊天室的问题 不在乎分数,只要我有,你要多少给多少!
  • 求助java聊天室、公告栏、记数器、email的源代码
  • 求助 关于Linux下Socket的聊天程序
  • SOCKET聊天室程序求助(有源程序)100分
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 怎样读取HZK24S前十区的内容啊???求助求助
  • 紧急求助!紧急求助!
  • 【求助】iplanet问题,求助高手解答!
  • 菜鸟求助,solaris下计算问题求助
  • 【求助】SOS紧急求助..............极为简单的问题...跪求....
  • 高分求助啊!求助SUSE 10.0 不能上网.
  • 急急急急急急急啊,紧急求助啊!!!!!满分求助啊!!!!!!
  • 求助:linux下 vim的配置(高分求助)
  • red hat怎么安装gcc啊!总是出错,求助求助啊!!!yum源怎么改啊!!
  • 求助~~求助 ~~linux文件读写问题
  • 求助:信号 --13 进程中断
  • 求助,安装了红帽子后进不了
  • 新装linux求助
  • linux的 iptables问题求助
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 一个简单的问题,高分求助!!!
  • 紧急求助:Unix下给文件夹重命名用什么命令?谢谢!!!!
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • 高分求助


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3