使用執行緒的TCP回射伺服器程式

2021-07-05 19:42:35 字數 1058 閱讀 1269

使用執行緒緣由

1)fork 代價昂貴

2)fork 返回之後父子程序資訊傳遞需要通過ipc機制

同一程序內的執行緒除共享全域性變數外還共享:

a)程序指令

b)大多數資料

c)開啟的檔案描述符

d)訊號處理函式和處理

e)當前工作目錄

f)使用者id和組id

不過每個執行緒有各自的

a)執行緒id

b)暫存器集合

c)棧

d)errno

e)訊號掩碼

f)優先順序

使用執行緒的tcp回射服務程式

#include 

#include /* see notes */

#include

#include

#include

#include

#include

#include

#include

void

str_echo(int sockfd)

static

void *

doit(void *arg)

int main(int argc, char** argv)

bzero(&servaddr, sizeof(servaddr));

servaddr.sin_family = af_inet;

servaddr.sin_port = htons(13000);

servaddr.sin_addr.s_addr = inet_addr("0.0.0.0");

if( bind(sockfd, (struct sockaddr* )&servaddr, sizeof(servaddr)) < 0)

if(listen(sockfd, 10) < 0)

cliaddr = malloc(addrlen);

for( ; ;)

}

注意的地方

編譯 gcc tcp_sever_thread.c -o sever -pthread

TCP 回射伺服器

tcp reflect server client tcp回射伺服器。學習了 unp 的第五章前面的知識,自己把 敲出來了,加深了理解吧。簡單地說就是,client傳送給server一條訊息 一行文字 server再將同樣地訊息傳送回client。就像這樣 用到的函式和api包括 1 socket ...

TCP 回射伺服器

本例為多程序的 tcp 回射程式 服務端 include intmain int argc,char ar close connfd 父程序斷開連線 void str echo int sockfd 套接字 sockaddr in cliaddr,servaddr 網際套接字位址結構,包含協議族 i...

Linux C 回射伺服器

回射伺服器就是服務端將客戶端的資料傳送回去。我實現的回射伺服器返回增加了時間。服務端 可以很容易看懂 cpp view plain copy include include include include include include include include include define ...