Java 套接字客户端不发送任何内容
我有一个问题:我的Android手机上有一个Socket客户端,电脑上有一个Java Socket服务器。服务器->Android工作得很好,但Android->服务器不工作 这是我在手机上的发送方式:Java 套接字客户端不发送任何内容,java,android,sockets,Java,Android,Sockets,我有一个问题:我的Android手机上有一个Socket客户端,电脑上有一个Java Socket服务器。服务器->Android工作得很好,但Android->服务器不工作 这是我在手机上的发送方式: public void sendMessage(String cmd, String parameter) { String msg; if(!parameter.equals("")) msg = cmd+";"+parameter;
public void sendMessage(String cmd, String parameter) {
String msg;
if(!parameter.equals(""))
msg = cmd+";"+parameter;
else
msg = cmd+";null";
Log.v(TAG,"Send: "+msg);
DataOutputStream bos;
try {
bos = new DataOutputStream(s.getOutputStream());
bos.write(msg.getBytes("US_ASCII"));
bos.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
这是我的服务器上的接收:
@Override
public void run() {
while (isRunning) {
try {
DataInputStream dis = new DataInputStream(s.getInputStream());
String message = dis.readUTF();
System.out.println("#"+this.ID+": Received: "+message);
obs.setID(ID);
obs.proceedMsg(message);
} catch (IOException ex) {
this.isRunning = false;
System.out.println("#"+this.ID+": Closed Instance");
}
}
}
有人有主意吗
谢谢您应该在客户端使用writeUTF。当您使用readUTF方法时,服务器需要UTF
writeUTF在开头写入额外的2个字节,表示块长度。当您使用纯写方法时,您没有提供这些字节,这就是问题所在。您从pc发送的数据在android端是否得到了很好的接收?是的,服务器->手机工作正常谢谢,这是正确的,我在doku中没有见过这种方法: