[問題] server同時等待recv不同client傳送資料?

作者: ptthidebear (= =)   2015-05-26 20:27:42
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
Winsock2
問題(Question):
各位好,小弟是socket的初學者,最近想要實作一個server,
目的是在建立約4個連線(client使用不同的port連接server)之後,
這些client會傳送data給server,server接收到某個client的訊息後,
再根據是哪個client送的訊息去做相對應的事情。
理論上來說這些client不會同時送資料給server,同時間可能只有一個,
想請教各位大大,這樣一定得用multi-thread的方式實做嗎?
今天有稍微看了一下select()這個function,看到的example都是
select
作者: scwg ( )   2015-05-26 20:37:00
accept 之後的 fd 也可以放到 readfds 裡, select 回來的時候檢查, 只有 serversock 用 accept, 其他可以用 recv 收
作者: q82419 (q82419)   2015-05-27 02:49:00
multi-process (被打
作者: Jockey66666 (往事已成追憶)   2015-05-27 09:07:00
你說client使用不同的port(server的?)去連server既然都開不同port了那就不用多開thread吧?雖然這樣有點怪怪的,也許是我誤會你的意思了
作者: iloveyouever (佚名)   2015-05-29 10:27:00
server應該是同一個port,樓上有點誤解
作者: overhead (overhead)   2015-05-30 10:29:00
不是很懂 你的意思是你覺得用select的recv會被block住?不會喔 select配合FD_ISSET 就不會被block了看你的需求 select是ok的

Links booklink

Contact Us: admin [ a t ] ucptt.com