2009-09-12 257 views
1

這一定很明顯,但是如何讓winsock監聽特定的端口(接收數據?)我找不到讓我這樣做的方法!如何讓winsock在特定端口上偵聽?

對不起,這可能是如此明顯。

我正在嘗試創建一個聊天應用程序,顯然它運行在服務器/客戶端設置中。

回答

1

bind的插座,然後listenaccept連接。在Getting started with WinSock中有更詳細的描述。 BSD套接字也有一個good guide,您應該閱讀。

對於.NET,您可能需要System.Net.Sockets.Socket(而且它是綁定/監聽/接受/發送/接收方法)而不是本機WinSock,但概念相同,因此我將保留所有鏈接。

+0

我忘了提,這是在vb.net的方式。 – Cyclone 2009-09-12 20:40:00

+0

然後它不應該被標記爲WinSock的問題。我已經添加了.NET套接字來回答。 – 2009-09-12 20:55:13

+0

好吧,我想我只是困惑大聲笑。謝謝您的幫助! – Cyclone 2009-09-12 21:07:31

1

當你使用TCP套接字綁定,偵聽並接受並最終接收。您可以通過here找到一些教程,或查看官方的MSDN文檔。

winsock API基於UNIX的BSD套接字;所以他們非常相似。你可能想看看。我最近的一本書是Richard Stevens的UNIX Network Programming,他解釋了幾乎所有關於套接字的知識。

您也可以考慮在單獨的線程中運行套接字以提高可讀性和性能。

編輯:至於在特定的端口上收聽;這是SOCKADDR_IN結構的sin.port參數。