苍之弦 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 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd
  • ¥50 C# 使用DEVMOD设置打印机首选项
  • ¥15 麒麟V10 arm安装gdal
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库