搭建乙個伺服器的簡單過程

2021-10-06 21:27:13 字數 2482 閱讀 8091

首先我說下一下幾個基本的步驟:

1、socket

2、bind繫結

3、listen

4、accpet

5、recv

6、傳送

1.socket

int socket(int domain, int type, int protocol);

功能:

建立用來通訊的套接字

引數:domain:通訊域

af_inet

type:流式套接字

sock_stream

protocol:

預設為0

返回值:

成功返回檔案描述符

失敗返回-1

2.listen

int listen(int sockfd, int backlog);

功能:監聽客戶端傳送的三次握手鏈結請求

引數:sockfd:套接字檔案描述符

backlog:允許等待且尚未被處理的三次握手請求連線個數

返回值:

成功返回0

失敗返回-1

3.connect

int connect(int sockfd, const struct sockaddr *addr,

socklen_t addrlen);

功能:引數:

sockfd:套接字檔案描述符

addrlen:位址長度

返回值:

成功返回0

失敗返回-1

4.accept

int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);

功能:處理等待佇列中第乙個三次握手鏈結請求

引數:sockfd:套接字檔案描述符

addr:接收傳送三次握手端的ip位址資訊

addrlen:接收傳送三次握手端的ip位址長度資訊

返回值:

成功返回新的用來通訊的檔案描述符

失敗返回-1

5.send

ssize_t send(int sockfd, const void *buf, size_t len, int flags);

功能:傳送資訊

引數:sockfd:通訊的檔案描述符

buf:傳送資料空間首位址

len:傳送資料長度

flags:預設為0

返回值:

成功返回實際傳送位元組數

失敗返回-1

6.recv

ssize_t recv(int sockfd, void *buf, size_t len, int flags);

功能:接收資訊

引數:sockfd:套接字檔案描述符

buf:存放資料空間首位址

len:最大接收資料長度

flags:預設為0

返回值:

成功返回實際接收位元組數

失敗返回-1

對方關閉套接字返回0

粘包問題:

傳送資料量小,接收資料量大時,資料會粘連到一起,並實現傳送

解決方法:

1.每次傳送資料時,產生時間間隔

2.定長傳送

下面我附上他的源**

#include 「head.h」

int main(int argc, const char *ar**)

;struct sockaddr_in seraddr;

sockfd = socket(af_inet, sock_stream, 0);

if (-1 == sockfd)

seraddr.sin_family = af_inet;

seraddr.sin_port = htons(50000);

seraddr.sin_addr.s_addr = inet_addr("192.168.0.183");

ret = bind(sockfd, (struct sockaddr *)&seraddr, sizeof(seraddr));

if (-1 == ret)

ret = listen(sockfd, 10);

if (-1 == ret)

confd = accept(sockfd, null, null);

if (-1 == confd)

ret = recv(confd, tmpbuff, sizeof(tmpbuff), 0);

if (-1 == ret)

printf("recv:%s\n", tmpbuff);

sprintf(tmpbuff, "%s ------echo----", tmpbuff);

ret = send(confd, tmpbuff, strlen(tmpbuff)+1, 0);

if (-1 == ret)

close(confd);

close(sockfd);

return 0;

搭建乙個簡單的http伺服器

在之前的博文中,我陸續說過如何搭建ftp,sftp,tftp伺服器,在本文中,我們來繼續聊如何實戰搭建乙個http伺服器。http伺服器有很多種,如tomcat,apache等,然而,很多新手無法搭建和配置成功,頗為受挫,內心不爽。我保證,本文搭建http伺服器的過程極簡化。搭建http伺服器的步驟...

go搭建乙個簡單web伺服器

go語言裡面提供了乙個完善的net http包,通過http包可以很 方便的就搭建起來乙個可以執行的web服務。同時使用這個包能很簡單地對web的路由,靜態檔案,模版,cookie等數 據進行設定和操作。http包建立web伺服器 1 服務端 fmt.fprintf w,hello go web s...

搭建乙個FTP伺服器

1 首先在本地機器上建立乙個使用者!這些使用者是用來登入到ftp的!我的電腦右鍵 管理 本地使用者和組 使用者 右鍵 新建使用者 輸入使用者名稱和密碼再點建立就行了!3 之後是安裝iis元件!在開始選單裡 控制面板 新增或刪除程式 新增 刪除windows元件 應用程式伺服器 internet 資訊...