Linux 網路程式設計之乙個簡單的客戶端伺服器程式

2021-08-21 07:59:16 字數 2103 閱讀 9446

1、服務端

#include "includes.h"

#include #include #include #define server_port 8888 //監聽的埠號

#define max_buffer_len (256) //最大的buffer長度

void process_conn_server(int sock)

; int iret = 0;

printf("%s enter\n", __func__);

iret = read(sock, buf, sizeof(buf));

if (0 > iret)

printf("read buf from client.\r\n");

//讀取到的資訊寫到標準輸出

write(1, buf, sizeof(buf));

printf("%s exit\n", __func__);

return ;

}int startserver()

//2、設定伺服器的位址

bzero(&server_addr, sizeof(struct sockaddr_in));

server_addr.sin_family = af_inet;

server_addr.sin_addr.s_addr = htonl(inaddr_any);

server_addr.sin_port = server_port;

//3、繫結位址到套接字描述符

iret = bind(sock_server, (const struct sockaddr *)&server_addr, sizeof(struct sockaddr));

if( 0 > iret)

//4、設定監聽佇列

iret = listen(sock_server, 5);

if(0 > iret)

//5、主迴圈處理客戶端請求

while(1)

// 6、建立乙個新的程序處理client資料

printf("recive the client data.\n");

pid = fork();

if (0 > pid)

else if(0 == pid)//子程序

else // 父程序

}return iret;

}int main(int argc, char const *argv)

2、客戶端

#include "includes.h"

#include #include #include #define server_port 8888 //監聽的埠號

#define max_buffer_len (256)

void process_conn_client(int sock)

; while(1)

}}void startclient()

//2、設定客戶端位址

bzero(&server_addr, sizeof(struct sockaddr_in));

server_addr.sin_family = af_inet;

server_addr.sin_addr.s_addr = htonl(inaddr_any);

server_addr.sin_port = server_port;

inet_pton(af_inet, "127.0.0.1", &server_addr.sin_addr);

//3、連線伺服器

connect(sock_client, (const struct sockaddr *)&server_addr, sizeof(struct sockaddr));

//4、客戶端與伺服器進行通訊

process_conn_client(sock_client);

//5、關閉連線

close(sock_client);

printf("%s exit\n", __func__);

return;

}int main(int argc, char const *argv)

python soket程式設計之乙個ssh程式

1 在寫這個程式之前我們先來了解一下socket的工作過程 如下圖所示 一 服務端繫結乙個埠號 並處於監聽狀態。用accept 接收發來的資料請求 二 客戶端通過位址和埠號連線服務端,並傳送資料請求。三 服務端收到後,處理請求,併發請求發給客戶端。如何客戶端還在連線請求,那麼就迴圈操作。四 客戶端處...

網路程式設計之乙個bug找一天系列

你真的清楚et模式和lt模式的區別碼?關鍵你真的會用碼?lt模式 效率低於et模式,但lt模式對 要求低,不容易出現問題 et模式 效率非常高,非常適合大併發 大流量下。但需要細緻處理每乙個請求,否則容易發生事件丟失。實際應用的差別 lt模式,如果accept呼叫有返回就可以馬上建立這個連線了,然後...

unix網路程式設計之一TCP UDP

網路通訊中最常用的就是tcp udp。2種協議個有一些特點如下 udp是一種簡單的傳輸協議。應用程式寫資料到udp套介面。然後由它封裝成ipv4或ipv6的資料報,再傳送到目的位址。它不提供可靠性。它與伺服器不存在長期的連線關係。tcp是一種面向連線的協議。提供 可靠性 先連線,再傳輸資料。傳送資料...