jinfeng0317 2023-05-17 13:45 采纳率: 77.8%
浏览 20
已结题

如何输出到我的另一个.exe格式的插件中

img


已经生成一个粒子Render top 如何以TCP客户端的形式输出到我的另一个.exe格式的插件中?作为交互使用的输出,

  • 写回答

1条回答 默认 最新

  • 技术宅program 2023-05-17 18:44
    关注

    以下答案由GPT-4.0Plus大模型与博主A努力中.......共同编写:
    要实现将一个程序的输出作为另一个程序的输入,可以通过TCP网络套接字进行通信。基本思路如下:

    1. Render top程序作为TCP服务器,监听某个端口的连接,接收客户端数据。
    2. 插件程序作为TCP客户端,连接到Render top的指定IP地址和端口,发送数据并接收输出。
    3. Render top接收到客户端数据后,进行计算和处理,产生输出结果。
    4. Render top将输出结果通过网络套接字发送给插件程序客户端。
    5. 客户端接收到输出结果后,进行解析和展示。
      关键步骤在程序代码中实现:
      Render top(服务器端):
    cpp
    // 监听端口 
    int listenfd = socket(AF_INET, SOCK_STREAM, 0);
    // 绑定IP和端口
    bind(listenfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr));  
    // 监听连接
    listen(listenfd, 10);
    
    while(1) {
        // 接收客户端连接
        int connfd = accept(listenfd, (struct sockaddr*)&cli_addr, &clilen);
        
        // 接收客户端数据
        n = read(connfd, buf, MAXLINE);  
        
        // 处理数据,产生输出
        ...
        
        // 发送输出到客户端
        write(connfd, output, strlen(output));
    }
    
    

    插件程序(客户端):

    cpp
    int sockfd;
    struct sockaddr_in serv_addr;
    
    // 连接服务器
    sockfd = socket(AF_INET, SOCK_STREAM, 0);  
    serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
    serv_addr.sin_port = htons(8000);
    connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr));  
    
    // 发送数据到服务器
    write(sockfd, request, strlen(request));
    
    // 接收服务器输出 
    n = read(sockfd, buf, MAXLINE);
    // 解析和处理输出
    ... 
    
    

    通过上述TCP通信实现,Render top产生的输出可以作为插件程序的输入,实现两程序的交互。

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

报告相同问题?

问题事件

  • 系统已结题 5月30日
  • 已采纳回答 5月22日
  • 创建了问题 5月17日

悬赏问题

  • ¥15 centos7系统下abinit安装时make出错
  • ¥15 hbuildex运行微信小程序报错
  • ¥50 HAL ADCDMA单次触发转换
  • ¥15 关于#python#的问题:我知道这个问题对你们来说肯定so easy
  • ¥15 wpf datagrid如何实现多层表头
  • ¥15 为啥画版图在Run DRC会出现Connect Error?可我Calibre的hostname和计算机的hostname已经设置成一样的了。
  • ¥20 网站后台使用极速模式非常的卡
  • ¥20 Keil uVision5创建project没反应
  • ¥15 mmseqs内存报错
  • ¥15 vika文档如何与obsidian同步