public void run() {
try {
System.out.println(socket.toString());
socket.setKeepAlive(true);
socket.setSoTimeout(5 * 1000);
InputStream in= socket.getInputStream();
PrintWriter out=new PrintWriter(socket.getOutputStream());
//BufferedReader wt = new BufferedReader(new InputStreamReader(System.in));
while (true) {
String strXML = "";
byte[] temp = new byte[1024];
int length = 0;
while((length = in.read(temp)) != -1){
strXML += new String(temp,0,length);
}
if("1".equals(strXML)){
out.print((char)1);
System.out.println("接受心跳包并回复");
break;
}
if("".equals(strXML))
continue;
System.out.println("客户端发来:"+strXML.toString());
// MethodHandler mh = new MethodHandler(ReadXML.readXML(strXML.toString()));
// String resultXML = mh.getResultXML();
// System.out.println("返回:"+resultXML.toString());
//
//
// if(!"".equals(resultXML)){
// out.print(resultXML);
out.flush();
out.close();
// }
}
socket.close();
System.out.println("socket stop.....");
} catch (Exception e) {
e.printStackTrace();
}
}
客户端
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 8877);
socket.setKeepAlive(true);
InputStream in= socket.getInputStream();
PrintWriter out=new PrintWriter(socket.getOutputStream());
while(true && null != socket){
String strXML = "";
byte[] temp = new byte[1024];
int length = 0;
while((length = in.read(temp)) != -1){
strXML += new String(temp,0,length);
}
out.print(1);
Thread.sleep(10 * 1000);
}
out.flush();
out.close();
}catch(IOException e){
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
6 个解决方案
#1
自己顶一下子
#2
检查服务器到底启动没有,可以查端口的监听情况。
检查服务器和客户端的端口是不是统一
检查服务器和客户端的端口是不是统一
#3
楼上说的肯定没问题哈,您看是不是我代码哪里写错了
#4
代码是不是不全,没看到服务端 serversocket 的accept 侦听,服务端不侦听,怎么接受客户短发送过来的数据。
#5
对对,没侦听
#6
侦听之后还是没接收到啊,是不是客户端你的发送有问题啊
#1
自己顶一下子
#2
检查服务器到底启动没有,可以查端口的监听情况。
检查服务器和客户端的端口是不是统一
检查服务器和客户端的端口是不是统一
#3
楼上说的肯定没问题哈,您看是不是我代码哪里写错了
#4
代码是不是不全,没看到服务端 serversocket 的accept 侦听,服务端不侦听,怎么接受客户短发送过来的数据。
#5
对对,没侦听
#6
侦听之后还是没接收到啊,是不是客户端你的发送有问题啊