我正在使用C,Linux和GIO GSocket構建一個小型應用程序,以通過TCP與數字投影儀進行通信。套接字連接成功,我可以將消息成功發送到投影機。我的問題是,我無法接收投影機在收到命令時返回的自動確認消息。當我發送一條消息,然後使用g_socket_receive,它會阻止並且從未收到響應。如何通過與GSocket的TCP連接發送消息時控制出站端口?
基於其他語言的過去類似問題,我懷疑問題是,當我使用g_socket_send發送消息時,消息在隨機可用的本地端口上發送。投影機然後自動回覆信息來源的端口。不知道它使用了哪個端口,我無法讓我的GSocket在正確的端口上偵聽。在其他語言中,手動設置本地出站端口是一件簡單的事情,所以我知道響應會回到哪裏。然而,我一直無法找到任何有關如何使用GSocket的信息。
任何人都可以提供這方面的任何幫助,或任何想法,我可能缺少什麼問題?
謝謝!
如果您發起TCP連接到服務器(投影機),在TCP/IP堆棧管理本地端口(你只需要知道服務器的IP :PORT pair),所以你不需要「聽」任何東西;聽是爲了自己創建一個服務器。我的猜測是,你的問題在別的地方...... – Unknown