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是同乙個,由於虛...