使用執行緒緣由
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 ...