簡體   English   中英

在Cocoa中運行套接字服務器

[英]Running a Socket Server in Cocoa

我正在嘗試編寫一個程序,它使用套接字通過網絡連接自身的其他實例。 由於最終我還想編寫Windows版本,我目前正在OS X端使用BSD套接字,以便我可以確保它與(最終)Windows版本兼容。

到目前為止,我能夠使這個工作的唯一方法是在創建服務器套接字時指定我的實際IP地址。 如果我改用127.0.0.1,那么我只能從本地機器連接。

雖然這在理論上很好,但問題是我如何知道使用哪個IP地址? 我不知道如何通過Cocoa獲取當前機器的IP地址,即使我可以,如果有多個有效的IP地址(例如機場和以太網連接),該怎么辦。 我怎么知道使用哪一個? 我可以問用戶,但這似乎不是他們可以/應該知道的事情。

如果需要,我可以提供我的客戶端和服務器連接代碼,但是考慮到我能夠從遠程計算機建立連接,我認為問題不在我的代碼中。

感謝您的時間。 :)

使用0.0.0.0作為要偵聽的IP地址。 它會聽取所有地址。

可能在您正在使用的套接字API中為此地址定義了一個常量。 如果您使用的是標准C套接字API,那么它就是INADDR_ANY。

有一個名為Bonjour的網絡可發現性協議,您可以使用該協議在網絡上發布服務器,然后您的客戶端可以自動連接到它們。 它是跨平台的,但通常在其他系統上稱為零配置。

在做任何類型的套接字編程時,檢查Beej的套接字指南。 它已存在多年,涵蓋了大部分基礎知識。

http://beej.us/guide/bgnet/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM