我對套接字編程相當新穎 - 所以這可能是一個簡單的問題,但我真的想澄清。在服務器上使用不同的端口號
我有一個多客戶端到單個服務器程序:個人客戶端發送消息到服務器處理它們,然後將它傳遞到目的地,即服務器是中介。
在服務器端,每個客戶端都有一個線程用於偵聽來自客戶端的消息(它將被放置在緩衝區中)。目前所有的客戶端都發送消息到同一個端口(據我所知)。
我正在考慮設置另一個線程,服務器將在其上傳輸消息之前處理這些消息。使用服務器上的另一個端口發送這些消息是否合理?
我不是說這是一個討論,但我不知道什麼是常見或更多的邏輯做 - 任何建議?
在客戶端,我計劃讓它有一個線程用於發送消息到服務器,另一個線程用於接收。請讓我知道是否需要其他信息!
編輯
目前,它是一個1-服務器與多(現在幾十,幾百更高版本)-client程序 - 我似乎有客戶從我的服務器接收郵件的問題(我因此我認爲使用相同的端口可能會成爲問題),但我會再次嘗試使用相同的端口並查看。我認爲這可能是收到端口太忙而不能發送消息。
我假設同一臺服務器向客戶端發送和接收消息,如果是這樣,那麼你可能會使用相同的端口。我看不出爲什麼。否則,對於多個服務器,使用兩個端口可能是明智的。也許以後出於故障排除的原因。 – pandoragami 2013-03-06 08:20:49
你在使用什麼操作系統?在Linux上有'select'系統調用,它可以用來幾乎完全擺脫線程。服務器週期將如下所示:'select'爲您提供有關描述符(套接字)的信息,可以爲您提供數據。您循環這些套接字並處理數據(接受連接/生成響應),然後再重複一遍。 – 2013-03-06 08:25:31
該計劃的確切用意是什麼?客戶端 - 服務器程序的範圍可以從1client-1server到1000clients-100servers,每種服務器都有不同的體系結構以滿足不同的需求。 – user1952500 2013-03-06 08:25:34