page contents

Java 如何在建立 Socket 通信后主动向 C#客户端发送信息

Pack 发布于 2020-01-15 16:03
阅读 537
收藏 0
分类:Java开发

使用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();
199
Pack
Pack

我只能在成功建立的那一刻向客户发送信息,但这不是我想要的。


你想要还没有建立连接,就发消息?


我们用的webSocket 是要先连接创建session,然后根据存在的session去发消息。

请先 登录 后评论