Linux TCP協議使用執行緒實現併發伺服器

2021-07-24 11:14:42 字數 2051 閱讀 4716

直接放**:

伺服器:

#include

#include

#include

#include

#include

#include

#include

#define portnum 3333

//char send_buf[1024];

#if 0

void write(void *sock_fd)

pthread_exit(0);

}#endif

void* read(void *sock_fd)

if(send((sock_fd_new),"ok!",1024,0) < 0)

if(strncmp(buf,"quit",4) == 0)

}pthread_exit(0);

}int main()

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

my_addr.sin_family = af_inet;

my_addr.sin_port = htons(portnum);

//my_addr.sin_addr.s_addr = htonl(inaddr_any);

my_addr.sin_addr.s_addr = inet_addr("192.168.1.11");

if(bind(sock_fd,(struct sockaddr *)(&my_addr),addrlen) < 0)

if(listen(sock_fd,10) < 0)

while(1)

pthread_create((&ip),null,(void *)read,(void *)(&sock_fd_new));//有客戶傳送就新建乙個執行緒,不需要兩個執行緒分別讀寫,伺服器寫不知道寫**。

//pthread_create(&ip,null,(void *)write,(void *)(&sock_fd_new));

}close(sock_fd);

return 0;}

客戶:#include

#include

#include

#include

#include

#include

#define portnum 3333

char buf_read[1024];

char buf_send[1024];

void write(void *sock_fd)

if(strncmp(buf_send,"quit",4) == 0)

}pthread_exit(0);

}void read(void *sock_fd)

if(strncmp(buf_send,"quit",4) == 0)

}pthread_exit(0);

}int main()

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

addr_serv.sin_family = af_inet;

addr_serv.sin_port = htons(portnum);

//addr_serv.sin_addr.s_addr = htonl(inaddr_any);

addr_serv.sin_addr.s_addr = inet_addr("192.168.1.11");

if(connect(sock_fd,(struct sockaddr *)(&addr_serv),addrlen) < 0)

pthread_create(&ip1,null,(void *)read,(void *)(&sock_fd));//收到資訊是乙個執行緒

pthread_create(&ip2,null,(void *)write,(void *)(&sock_fd)); //傳送資訊是乙個執行緒

pthread_join(ip1,null);

pthread_join(ip2,null);

close(sock_fd);

return 0;}

乙個在努力中的未來程式設計師

Linux TCP協議程式設計流程

tcp協議 面向連線的,可靠的 位元組流服務 udp協議 無連線的,不可靠的,資料報服務 伺服器 一般為被動通訊 客戶端 一般為主動通訊 1 伺服器端程式設計流程 1 int socket 建立乙個用於監聽客戶端鏈結的網路套接字 int socket int domain,int type,int ...

Linux TCP協議的程式設計流程

一 定義 tcp協議是面向連線的可靠的位元組流服務 tcp協議分為客戶端和服務端 伺服器是被動通訊,客戶端是主動通訊 二 伺服器的系統呼叫 1 方法 1 int socket 建立乙個用於監聽客戶端連線的網路套接字 原型 成功返回套接字的檔案描述符,失敗返回 1 domain 協議簇 af inet...

Android TCP協議與UDP協議的實現

tcp協議 安卓真機與pc之間可以通過serversocket 與 socket進行通訊,使用的是tcp ip協議。tcp對網路要求很高,具有可靠的安全性 伺服器 public class server public void server int port catch exception e 客戶...