眾所周知,通常所見的的tcp伺服器都是併發實現的,即服務同時處理多個請求,
而不是等待前乙個完成再處理下乙個請求,這個實現得益於tcp的listen()與connect()的分工處理機制。
而對於 udp 沒有這種監聽和連線機制,所以它必須等待前一處理完成才能繼續處理下乙個客戶的請求。
但並不是說udp實現併發伺服器是不可能的,只是與上面的實現稍有不同。
udp伺服器併發的兩種方法:
一、比較常用的處理方法是:
伺服器(知名埠)等待一下客戶的到來,當乙個客戶到來後,記下其ip和port,然後同理,
伺服器fork乙個子程序,建立乙個socket再bind乙個隨機埠,然後建立與客戶的連線,
並處理該客戶的請求。父程序繼續迴圈,等待下乙個客戶的到來。在tftpd中就是使用這種技術的。
大概的實現如下:
for ( ; ; )
{ /* 等待新的客戶端連線 */
recvform( &from_addr)
UDP高階技術(併發伺服器)
通常所見的的tcp伺服器都是併發實現的,即服務同時處理多個請求,而不是等待前乙個完成再處理下乙個請求,這個實現得益於tcp的listen 與connect 的分工處理機制。具體為,伺服器監聽來自客戶的連線,當乙個請求到來時,伺服器fork 乙個子程序,處理該請求,然後父程序繼續監聽外部請求。但在ud...
UDP併發伺服器模型 二 select機制
上篇文章說了下 udp 併發模型。然後筆者也自己編寫了一套 基本上能顯示 udp 併發機制。大致原理參考 select機制能很好地提供多路io功能。對於本套 已基本上能提供類似 select 的功能主要函式介面 void listen head init struct list head head ...
一 玩轉物聯網 Nginx伺服器搭建
平台 阿里雲 centos 6.8 32位 搭建lnmp環境按照參考官方的文件。lnmp環境搭建 下面是實際操作中的一些記錄,流程主要按照上面的文件參考。2,安全組設定。就是在阿里雲管理平台上,對http需要用到的80埠進行配置。3,安裝nginx。這部分,按照nginx官方的說明來,如下 to s...