首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

为啥服务器拒绝连接客户端

2012-07-22 
为什么服务器拒绝连接客户端[b]使用socket编写一个服务器端程序,服务器端程序在端口8888监听,如果他接到客

为什么服务器拒绝连接客户端
[b]使用socket编写一个服务器端程序,服务器端程序在端口8888监听,如果他接到客户端发来的“hello”请求时会回应一个“hello”,对客户端的其他请求不响应。这个程序已经编写了,可是在eclipse上运行时,却显示拒绝连接。怎么回事

[解决办法]
写错了吧,看看详细错误和错误附近的代码。
[解决办法]
这排版看得我眼晕。。。暂时没看出啥问题。

你确定已经先启动服务端了?
[解决办法]
连接不上,要么是服务器没开,要么是防火墙阻止
[解决办法]
很明显,客户端和服务器端的读写协议没有协调

对于服务器端,用 readLine(),也就是说,客户端必须至少在输入后跟一个回车或换行,服务器才能从readLine()中返回,否则就会一直出于阻塞状态,而客户端等啊等,等到超时也收不到回复,因为服务器端压根还在傻等着呢

解决方法:只需要在客户端往输出流里写入时,后面紧跟着写入一个回车'\n'

outStream.writeBytes(str);//将字符串写入 输出流中
outStream.write('\n');
outStream.flush();

String str1=inStream.readLine();//客户端读取信息

当然,也可以让客户端的输出流使用PrintStream,然后使用println(str)来输出带换行的字符串

同样的道理:
服务器端返回时,用的println("hello"),以回车换行结束
客户端读取时,用readLine().
这里就很协调,上面一步时怎么就。。。。糊涂了呢

热点排行