日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux下多线程实现服务端

發(fā)布時間:2025/6/15 linux 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux下多线程实现服务端 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ? ? ? ? ? ? ? 并發(fā)服務端有多線程的和多進程的,今天來看一下多線程的。線程編程可能會麻煩一點,其中涉及到一些同步,死鎖問題,但是也有其優(yōu)點。并發(fā)服務端用的多的還是多進程。

服務端:

?

#include<stdlib.h> #include<pthread.h> #include<sys/socket.h> #include<sys/types.h> #include<stdio.h> #include<iostream> #include<netinet/in.h> #include<arpa/inet.h> #include<string.h> #include<unistd.h>void *server_handle(void * sock_fd);int main() { int sockSrv;int sockConn;struct sockaddr_in addrSrv;struct sockaddr_in addrClient;socklen_t client_length;sockSrv = socket(AF_INET,SOCK_STREAM,0);memset(&addrSrv,0,sizeof(addrSrv));addrSrv.sin_family = AF_INET;addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);addrSrv.sin_port = htons(8888); bind(sockSrv,(const struct sockaddr *)(&addrSrv),sizeof(struct sockaddr_in));listen(sockSrv,5);while(1){ pthread_t thread_id;client_length = sizeof(addrClient);sockConn = accept(sockSrv,(struct sockaddr *)(&addrClient),&client_length);if(pthread_create(&thread_id,NULL,server_handle,(void *)(&sockConn)) == -1)//創(chuàng)建線程{ printf("pthread_create error!\n");break;}}close(sockSrv);return 0; }void *server_handle(void * sock_fd) {int fd = *(int *)sock_fd;int recvBytes = 0;char recvBuf[1024];char sendBuf[50] = "Server has received your request!\n";while(1){memset(recvBuf,0,1024);recvBytes = read(fd,recvBuf,1024);printf("recvDate=%s\n",recvBuf);if(recvBytes == 0){printf("client closed\n");break;}if(recvBytes == -1){printf("read error!\n");break;}if(write(fd,sendBuf,strlen(sendBuf)) == -1){break;}}close(fd);pthread_exit(NULL);//線程退出 }

客戶端:

?

?

#include<sys/socket.h> #include<netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #include <stdio.h> #include <string.h>int main() {int sockClient = socket(AF_INET, SOCK_STREAM, 0);struct sockaddr_in addrSrv;addrSrv.sin_addr.s_addr = inet_addr("127.0.0.1");addrSrv.sin_family = AF_INET;addrSrv.sin_port = htons(8888);connect(sockClient, ( const struct sockaddr *)&addrSrv, sizeof(struct sockaddr_in));char sendBuf[100] = "123";char recvBuf[100];send(sockClient, sendBuf, strlen(sendBuf)+1, 0);printf("%s\n", sendBuf);recv(sockClient,recvBuf,sizeof(recvBuf),0);printf("recvBuf=%s\n",recvBuf);getchar();close(sockClient);return 0; }

?

經(jīng)過編譯,能運行。

?

?

[mapan@localhost threadServer]$ ./server recvDate=123[mapan@localhost threadServer]$ ./client 123 recvBuf=Server has received your request!

?

?

?

?

?

?

參考地址:https://www.cnblogs.com/nerohwang/p/3602233.html

多進程版本參看:http://blog.csdn.net/stpeace/article/details/75947203

總結

以上是生活随笔為你收集整理的linux下多线程实现服务端的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 蜜桃av在线免费观看 | 狂野欧美 | 国产精品女人精品久久久天天 | 日韩欧美综合一区 | 久久久久免费精品 | 五月婷婷综合在线 | 亚洲成人av在线播放 | 丰满岳跪趴高撅肥臀尤物在线观看 | 色综合久久久久无码专区 | 找av导航| 免费观看污视频 | 亚洲国产精品免费视频 | 国产一级片精品 | 国产精品videossex国产高清 | 狠狠婷| 一区二区视频免费 | 老司机一区二区 | 老熟女高潮喷水了 | 香蕉视频三级 | 久久国产精品国语对白 | 国产素人自拍 | 成年人免费在线观看视频网站 | 台湾佬美性中文娱乐网 | 色婷视频| 天天爱综合网 | 国产黄a三级三级三级看三级男男 | 日本一级黄| 在线视频一区二区三区 | 欧美日韩成人一区 | 成人国产视频在线观看 | 欧美激情成人在线 | 中文字幕第六页 | 99热99re6国产在线播放 | 色五婷婷| 人妻互换一二三区激情视频 | 破处视频在线观看 | 色丁香婷婷综合久久 | 丰满少妇一区二区三区视频 | 网友自拍咪咪爱 | 久久人人爽人人爽人人 | 婷婷激情综合网 | 丁香激情五月少妇 | 五级 黄 色 片 | 极品新婚夜少妇真紧 | 久久新| 国产成人一区二区三区别 | 亚洲最色网站 | 久久人人精品 | 久久精品10| 粗大黑人巨茎大战欧美成人免费看 | 99热播| 亚洲一级网 | 国产一区二区三区四区hd | 欧美日韩伊人 | 人妻无码一区二区三区久久99 | 午夜福利三级理论电影 | 国产66页 | 亚洲欧洲激情 | 久久久精品人妻av一区二区三区 | 黄网站色视频 | 夜夜夜撸 | 久久精品国产大片免费观看 | 久久久久亚洲精品国产 | 欧美亚洲国产一区 | 中文字幕国产亚洲 | 亚洲免费视频一区 | 国产av一区不卡 | 亚洲av成人片色在线观看高潮 | 精品久久久久久久久久久 | 日韩成人在线观看视频 | 国产精品99久久久久久www | 深夜福利视频在线 | 欧美成人一区二区三区高清 | 国产第5页 | 一级片在线免费 | 色综合中文字幕 | 精品欧美一区二区三区久久久 | 国产老熟女伦老熟妇露脸 | 荒岛淫众女h文小说 | 成人久久免费 | 久久精品三级 | 精品视频免费播放 | 成人在线h | 激情网站在线 | 美丽的姑娘在线观看 | 久久婷婷五月综合色吧 | 一区二区三区四区国产精品 | 国产无套视频 | 女人久久 | 亚洲一线二线在线观看 | 深夜免费视频 | 青青久久av | 97超碰总站| 啄木乌欧美一区二区三区 | 日韩av在线直播 | 亚洲少妇在线 | 波岛野结衣 | 黄a视频| 97精品人人妻人人 |