为什么服务器拒绝连接客户端
[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().
这里就很协调,上面一步时怎么就。。。。糊涂了呢