Java 套接字客户端不发送任何内容

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;

我有一个问题:我的Android手机上有一个Socket客户端,电脑上有一个Java Socket服务器。服务器->Android工作得很好,但Android->服务器不工作

这是我在手机上的发送方式:

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中没有见过这种方法: