Java 向服务器发送ASCII和协议命令
我设法使用Java套接字建立了客户机和服务器连接。检查连接是否建立后,我尝试从服务器发送SDK提供的协议命令,并使用JButton执行这些命令 这些命令的示例包括播放、停止和ping服务器 下面的代码显示了如何设置连接和发送协议命令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
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时发布错误输出