主題:9360網絡連接的問題 共有44062人關注過本帖 |
---|
yy |
1樓 信息 | 搜索 | 郵箱 |
加好友 發短信 |
Post By:2013-4-25 15:22:00 [顯示全部帖子]
例程主要為提供測試和代碼方面的參考,實際應用的時候需要根據具體的應用需求來編碼。
tcp程序里,tcp server端通過accept函數得到的tcp client連接的SOCKET,然后通過send函數發送消息,recv來收消息,closesocket來關閉等。 例程里封裝成了一個TCP的SERVER類,但是這個SERVER類只弄一個SOCKET m_sockets用來和客戶端通信,這就等于是默認只和一個客戶端通信。按你的需求,你需要至少6個這樣的SOCKET,比如做成SOCKET m_sockets[6];然后創建6個線程,分別負責與6個客戶端的通信。同時你在accept后,可以先判斷當時有多少客戶端已經連上了在用了,哪些SOCKET還未使用,如果連接已經滿了,就可以直接closesocket拒絕客戶端的連接。你還可以在accept后判斷客戶端的IP地址,然后決定是否closesocket。
|
單帖管理 | 引用 | 回復 |
yy |
2樓 信息 | 搜索 | 郵箱 |
加好友 發短信 |
Post By:2013-4-26 14:25:00 [顯示全部帖子]
這兩個類只是例程封裝的兩個類,你完全可以根據你的需求自己封裝你自己的TCP類,你可以自己定義你的類名,定義你的類的方法,以及你自己的收發線程名,你希望封裝成多少個類都是你自己決定的。
如果你只是希望改動最少的代碼,你可以把例程里SOCKET m_sockets;改成SOCKET m_sockets[6];然后依次accept,然后收發線程也需要6個,傳入線程的參數也要修改下,線程需要知道自己對應的是哪個SOCKET,即哪個TCP客戶端,還有些別的地方也要做相應的修改。
我還是建議你重頭寫個,這樣更容易理解些。 |
單帖管理 | 引用 | 回復 |