yukixz / cqsocketapi

CoolQ Socket API written in VC++.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

关于在wine中使用本插件的奇怪问题

Zhuwuyou opened this issue · comments

我在Ubuntu上部署了官方docker下的wine+酷Q,遇见了极其奇葩的问题

  • 宿主机到docker内UDP通信成功,双方都是由我编写的测试程序。
  • docker内启动酷Q和Client,互相通信成功,可以添加客户端和收到ServerHello。
  • 宿主机运行Client,docker内运行酷Q,似乎收不到任何信息

刚刚看到需要framework 2.0,正在做额外的测试。
似乎该项目被废弃?

docker 需要把内部端口映射出来,google一下。
编译用的是静态链接,不需要.net运行库。
是,我不再维护这个项目了。

映射已经做过,在docker内运行自己写的小测试可以收到数据,但酷Q不行。

commented

host 模式正常,bridge 模式可能因为端口开放不完全就炸了。

CQBot似乎原生支持nodejs了吧

commented

解决方案:
Docker 自定义网络,此时仍在 Bridge 模式。设定固定 IP 并按实际情况修改 config.ini。
此时同一台机器内外能够通过虚拟网桥通信。
image
创建自定义网络示例:

docker network create --subnet=172.18.0.0/16 cqsocketnet
docker run --name=coolq --rm --network cqsocketnet --ip 172.18.0.2 ……

这个 Issue 可以 Close 了。

commented

想了一下,Bridge 模式是做了一层 NAT,而 CoolQ Socket API 添加客户端是根据 ClientHello 的端口来的。
NAT 过后端口就不一致,导致无法通信。可能需要修改添加客户端的机制。

commented

我更改了服务器和客户端的代码,hello中增加了ip地址字段,可以局域网内通讯了。

commented

局域网内通讯一直没问题,问题是 NAT 端口。

我在Ubuntu上部署了官方docker下的wine+酷Q,遇见了极其奇葩的问题

  • 宿主机到docker内UDP通信成功,双方都是由我编写的测试程序。
  • docker内启动酷Q和Client,互相通信成功,可以添加客户端和收到ServerHello。
  • 宿主机运行Client,docker内运行酷Q,似乎收不到任何信息

刚刚看到需要framework 2.0,正在做额外的测试。
似乎该项目被废弃?