與http伺服器的愛恨

2021-08-21 04:46:01 字數 1826 閱讀 8628

int

socket

(int domain, int type, int protocol)

//作用:建立乙個套接字

//引數:

// domain : 指定通訊協議族,常用的有 :

// af_inet(ipv4通訊)

// af_inet6(ipv6通訊)

// af_local(本地通訊)

// type : 常用的有 :

//

sock_stream(有序、可靠、雙向、基於連線的位元組流,即tcp)

// sock_dgram(無連線、不可靠資料報,即udp)

// protocol : 通常取0

//返回值

// 成功 : 返回新建立的套接字檔案描述符

// 失敗 : 返回 -1,錯誤**存於 errno 中,通過引入 可以引入該變數

int tcp_fd = socket(af_inet , sock_stream , 0);

1) 建立tcp server的步驟

tcp伺服器的設定步驟如下:

通過 socket() 系統呼叫建立乙個套接字;

使用 bind() 系統呼叫將所建立的套接字繫結到指定的埠上;

通過 listen() 將進行埠繫結的套接字進行埠偵聽,使客戶端能夠連線;

通過 accept() 接受客戶端的連線,該函式將會被阻塞,直至客戶端連線上來;

資料收發 read / write;

// file name : server.c

#include #include #include #include #include //定義了大量系統呼叫需要使用的型別

#include //定義了大量套接字所需要的結構體

#include //與網路相關的結構體及函式

// 該函式將字串 msg 輸出到 stderr,並退出執行

void error(char* msg)

int main(int argc , char* argv) listen(sockfd, 5); //進行埠偵聽 clilen = sizeof(cli_addr); //阻塞等待客戶端的連線

newsockfd = accept(sockfd, (struct sockaddr*) &cli_addr, &clilen); if(newsockfd < 0)

memset(buffer, 0, 256); n = read(newsockfd, buffer, 255); if(n < 0) error("error reading from socket"); printf("client message : %s\n" , buffer);

n = write(newsockfd, "i got your message", 18);

if(n < 0)

error("error writing to socket");

close(newsockfd);

close(sockfd);

return 0;

}

http伺服器與ftp伺服器互動邏輯

http伺服器與ftp伺服器互動邏輯 解決辦法 通過在http伺服器與ftp伺服器之間搭建redis來作為互動介質,及時互動ftp伺服器的狀態,使http伺服器對新加入的驗證請求做限制,進而達到我們的目的 操作流程 在ftp伺服器上,編寫shell指令碼用於獲取ftp伺服器各個引數狀態並存入redi...

與HTTP協作的Web伺服器

http 1.1規範允許一台http伺服器搭建多個web站點。這是因為利用了虛擬主機 virtual host,又稱虛擬伺服器 的功能 即使物理層面只有一台伺服器,但只要使用虛擬主機的功能,則可以假想已具有多台伺服器。當一台伺服器內託管了多個網域名稱,當收到請求時就需要弄清楚究竟要訪問哪個網域名稱。...

與HTTP協作的Web伺服器

web伺服器一般指 伺服器,是指駐留於網際網路上某種型別計算機的程式,提供網上資訊瀏覽服務。可作為伺服器搭建多個不同網域名稱的 也可以作為通訊路徑中的中轉伺服器提公升傳輸速率。一台物理計算機上搭建多個不同網域名稱的 採用虛擬主機實現該用法。此時網域名稱,通過dns網域名稱解析後的ip是同乙個,由於虛...