苍之弦 2019-08-15 13:04 采纳率: 50%
浏览 220
已采纳

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

使用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是如何发送的?希望大家能给我一个帮助,谢谢!

  • 写回答

1条回答 默认 最新

  • 关注

    用netty可以实现server向client push消息

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵