使用Java服务器与C#客户端成功建立套接字通信后,Java服务器如何主动向C#客户端发送消息?我只能在成功建立的那一刻向客户发送信息,但这不是我想要的。
项目启动时将开始创建套接字连接,但在建立之后,我无法自己向客户端发送信息。
-----这是负责建立套接字通信的代码。
public void openSocket() throws IOException {
Socket socket = null;
try {
ServerSocket serverSocket = new ServerSocket(5656);
log.info("server msg : UnitySocket server start {port : [5656]}");
socket = serverSocket.accept();
log.info("server msg : socket msg [client send !]");
inputStream = new BufferedInputStream(socket.getInputStream());
byte[] out_massage = new byte[messageLengthBytes];
inputStream.read(out_massage);
log.info("server msg : client msg is [ "+(new String(out_massage,"utf-8")));
OutputStream outputStream = socket.getOutputStream();
outputStream.write(socket_massage.getBytes()); // socket_massage = "welcome_send_server_!"
} catch (IOException e) { e.printStackTrace(); }finally {
if(socket != null){ socket.close(); }
socket = null;
}
这是要发送给客户端的数据
public Boolean askMoveUp(String address, String project,
String name, String massage,
String startTime, String endTime, String token) throws IOException {
StringBuffer stringBuffer = new StringBuffer();
SocketMassage socketMassage = new SocketMassage();
String msg;
stringBuffer.append(address).append("_");
stringBuffer.append(project).append("_");
stringBuffer.append(name).append("_");
stringBuffer.append(massage).append("_");
stringBuffer.append(startTime);
msg = stringBuffer.toString();
socketMassage.setMsg(msg);
return true;
}
我想要做的是askMoveUp()方法中的msg数据。如何在openSocket()方法中像socket_massage一样发送给客户端?当项目启动时,socket_massage中的数据被发送到客户端,但msg是如何发送的?希望大家能给我一个帮助,谢谢!