正文 網路通訊 Socket仿簡單IIS

2021-08-19 13:59:41 字數 1357 閱讀 4172

//監聽本地的7890埠,限定接收的socket為10個

string ip = "127.0.0.1";

string port = "7890";

//建立了乙個負責監聽的socket.

socket listensocket = new socket(addressfamily.internetwork, sockettype.stream, protocoltype.tcp);

ipaddress ipaddress = ipaddress.parse(ip);//ip位址.

ipendpoint ipendpoint = new ipendpoint(ipaddress, convert.toint32(port));

listensocket.bind(ipendpoint);//監聽的socket繫結了乙個通訊的節點

listensocket.listen(10);//look一下資料有沒有發過來,限制數量為10

thread mythread = new thread(new threadstart(delegate

));mythread.start();

//開啟了乙個執行緒,這個執行緒while迴圈,再迴圈中監聽socket,如果發現有socket請求,讀取socket的請求內容

/// /// 監聽,操作返回的socket

///

///

public void beginaccept(socket listensocket)

else

}}

//返回資料

#region 響應報文

//按照請求報文中的回車換行符進行分割。

string msgs = request.split(new char , stringsplitoptions.removeemptyentries);

//獲得當前伺服器程式的執行目錄

//從請求報文中獲取了使用者請求的檔案的名稱

string filepath = msgs[0].split(' ')[1];

if (ddir.endswith(@"\bin\debug\") || ddir.endswith(@"\bin\release\"))

string fulldir = ddir + filepath;//獲取要返回檔案的完整路徑。

if (file.exists(fulldir))

}else

#endregion

瀏覽器訪問時的url

藍色字型為鏈結

Socket網路通訊

服務端的程式如下 1.建立乙個伺服器端socket,即serversocket,指定繫結的埠,並監聽此埠8888 serversocket serversocket new serversocket 8888 socket socket null 記錄客戶端的數量 int count 0 syste...

socket網路通訊

read write recv send readv writev recvmsg sendmsg recvfrom sendto include ssize t read int fd,void buf,size t count ssize t write int fd,const void bu...

socket網路通訊《二》

socket網路通訊 本文注意基於socket來分析tcp連線建立過程。先回顧一下tcp連線建立過程 主機a執行的是tcp客戶端程式,主機b執行的是tcp伺服器程式,最初兩端tcp程序處於closed態,a主動開啟連線,對應客戶端connect函式發起連線,b被動接受連線,對應於伺服器listen函...