Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 向服务器发送ASCII和协议命令_Java_Sockets - Fatal编程技术网

Java 向服务器发送ASCII和协议命令

Java 向服务器发送ASCII和协议命令,java,sockets,Java,Sockets,我设法使用Java套接字建立了客户机和服务器连接。检查连接是否建立后,我尝试从服务器发送SDK提供的协议命令,并使用JButton执行这些命令 这些命令的示例包括播放、停止和ping服务器 下面的代码显示了如何设置连接和发送协议命令 public void socket1() { Socket MyClient; try { MyClient = new Socket("192.168.10.61",9993); os = new DataOutp

我设法使用Java套接字建立了客户机和服务器连接。检查连接是否建立后,我尝试从服务器发送SDK提供的协议命令,并使用JButton执行这些命令

这些命令的示例包括播放、停止和ping服务器

下面的代码显示了如何设置连接和发送协议命令

public void socket1()
{
    Socket MyClient;
    try {
        MyClient = new Socket("192.168.10.61",9993);
        os = new DataOutputStream(MyClient.getOutputStream());
        is = new DataInputStream(MyClient.getInputStream());
        lblerror.setText("Connected");
        MyClient.getOutputStream().write("play".getBytes("US-ASCII"));
    } catch (UnknownHostException e) {
        // TODO Auto-generated catch block
         lblerror.setText("Don't know about host: hostname");

    } catch (IOException e) {
        // TODO Auto-generated catch block
        lblerror.setText("Couldn't get I/O for the connection to: hostname");

    }


}

按下GUI上的按钮后,服务器没有响应“播放”命令,也没有错误。

正如Scarry Wombat所写,使用
os.write()
但是不要使用
.write()
而是使用
.writeBytes()

因为您要发送字节数组(?)。或者,您可以使用
.writeUTF()

MyClient.getOutputStream().write
->
os发送UTF编码的字符串。write
服务器是否确实需要
DataOutputStream
使用的格式?如果不是用Java编写的,很可能不是。您确定不打算在每个命令后放置行尾标记吗?我尝试了os.writeBytes()和os.writeUTF(),两者都返回为错误并让我更正回os.write()尝试byte[]buffer=yourstringhere.getBytes(),然后使用.writeBytes发送bytearray。请在使用.writeBytes时发布错误输出