我上實現用C Linux上的特殊目的TCP服務器計劃。在做了一點研究後,看起來有幾種方法可以做到這一點,包括單線程,每個連接一個線程和其他方法。對於套接字,有數據報vs流等選項,阻塞與非阻塞。良好的架構適度簡單的TCP服務器
大部分的通信是要看起來像:
Client: request id [request info]
Server: status id [response info]
或
Client: request id [request info]
Server: status id [response info]
Client: additional request id [request info]
Server: status id [response info]
這裏的一切是< 1kB的大部分東西都是< 512B。但是,在短時間內可能會有很多個人請求。
那麼,我該如何設置服務器,所以其工作效率最高(即不生豬資源,不否認的客戶端請求)?
生成響應需要很長時間嗎? – cnicutar
TCP意味着您正在使用流。數據報是UDP。 – duskwuff
你有沒有關於帶寬,連接數量的想法?如果服務器沒有被加載,爲什麼不考慮使用現有的協議(可能是HTTP,XMLRPC或SNMP等)?我會建議使用文本消息(Json,....),因爲它們更易於調試。 (查看SCGI的簡單協議示例)。 –