gpt4 book ai didi

Java Sockets TCP 发送和接收

转载 作者:行者123 更新时间:2023-12-01 11:13:38 25 4
gpt4 key购买 nike

我尝试了很多例子,但没有一个按照我的预期工作。我需要什么?

  1. 通过 IP 和端口发送数据包。
  2. 等待服务器响应并关闭套接字。

示例:

[Client] Send: "Hi server"
[Client] Wait
[Server] Send: "Hi client"
[Client] Receive response
[Client] Close socket

我只需要TCP客户端,服务器端就解决了。

尝试过: http://www.careerbless.com/samplecodes/java/beginners/socket/SocketBasic1.php

我的代码

public class SendPacket {

public void send() throws Exception{

Socket socket = null;
ObjectOutputStream oos = null;
ObjectInputStream ois = null;

socket = new Socket(ip, port);
oos = new ObjectOutputStream(socket.getOutputStream());

String msg = "DSPSYSSTS";
oos.write(msg.getBytes());
oos.flush();

//read the server response message
ois = new ObjectInputStream(socket.getInputStream());
String message = (String) ois.readObject();

RunWinCmd runCmd = new RunWinCmd();
runCmd.run("notepad.exe \"" + message + "\"");
//close resources
ois.close();
oos.close();

}
}

最佳答案

您必须按特定顺序初始化流。

试试这个(未测试):

public class SendPacket {

public void send() throws Exception{

Socket socket = null;
ObjectOutputStream oos = null;
ObjectInputStream ois = null;

socket = new Socket(ip, port);
oos = new ObjectOutputStream(socket.getOutputStream());
ois = new ObjectInputStream(socket.getInputStream());

String msg = "DSPSYSSTS";
oos.write(msg.getBytes());
oos.flush();

//read the server response message
String message = (String) ois.readObject();

RunWinCmd runCmd = new RunWinCmd();
runCmd.run("notepad.exe \"" + message + "\"");
//close resources
ois.close();
oos.close();
socket.close();//!!!!

} }

关于Java Sockets TCP 发送和接收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32098630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com