我正在開發C中的客戶端服務器程序。服務器支持來自同一端口的多個連接,併爲每個連接的客戶端創建一個新進程。客戶端能夠向服務器發送多個命令並從那裏獲取結果。其中一個命令是'get',用於將任何文件從服務器傳輸到客戶端。 (如獲取abc.txt bcd.pdf ...)。來自同一客戶端的多個連接
但是,這個傳輸操作應該在不同的線程中完成。例如,如果客戶端請求從服務器傳輸3個文件;服務器端和客戶端都創建了3個不同的線程。因此,客戶端將創建client_thread1,client_thread2,client_thread3,服務器將爲這些文件創建server_thread1,server_thread2,server_thread3。然後第一個文件將被server_thread1上傳到client_thread1,第二個文件將被server_thread2上傳到client_thread2等等。
這是我堅持的唯一觀點。我如何使用客戶端線程來匹配服務器線程;以便服務器線程只與客戶端線程進行通信,而服務器和客戶端則自由地完成自己的工作。
感謝您的幫助。
FWIW,爲每次傳輸創建一個線程是一個非常糟糕的主意,如果你想這個擴展。有關替代方法,請參閱http://www.kegel.com/c10k.html。 – 2012-03-16 19:26:32
爲什麼?同時傳輸三個文件的速度並不比傳輸速度快得多。網絡是瓶頸,你不能多線程。 – EJP 2012-03-18 22:06:52