我正在使用 C、Linux 和 GIO GSocket 构建一个小型应用程序,以通过 TCP 与数字投影仪进行通信。套接字连接成功,我能够成功地向投影仪发送消息。我的问题是我无法收到投影仪在收到命令时返回的自动确认消息。当我发送一条消息然后使用 g_socket_receive 时,它会阻塞并且似乎永远不会收到响应。
基于过去在其他语言中的类似问题,我对这个问题的怀疑是,当我使用 g_socket_send 发送消息时,消息是在随机可用的本地端口上发送的。然后投影机自动回复消息来源的端口。不知道它使用了什么端口,我无法让我的 GSocket 监听正确的端口。在其他语言中,手动设置本地出站端口是一件简单的事情,这样我就知道响应会返回到哪里。但是,我根本找不到任何有关如何使用 GSocket 进行操作的信息。
任何人都可以为此提供任何帮助,或者对我缺少的其他问题有什么想法吗?
谢谢!