Linux _多线程并发服务TCP
来源:互联网 发布:淘宝默认几天自动付款 编辑:程序博客网 时间:2024/05/21 17:37
client1.c
#include <sys/types.h>#include <sys/socket.h>#include <sys/stat.h>#include <sys/un.h>#include <netinet/in.h>#include <arpa/inet.h>#include <fcntl.h>#include <stdlib.h>#include <stdio.h>#include <errno.h>#include <signal.h>#include <string.h>#define BUFF_SIZE 1024int main(void){ int sockfd; struct sockaddr_in server_addr; int ret; int pd; char buff[BUFF_SIZE]; sockfd = socket (AF_INET, SOCK_STREAM, 0); server_addr.sin_addr.s_addr = inet_addr("10.10.0.9"); server_addr.sin_family = AF_INET; server_addr.sin_port = htons(9000); ret = connect(sockfd, (struct sockaddr*)&server_addr, sizeof(server_addr)); if (ret == -1) { perror("connect"); exit(errno); } strcpy(buff, "hello"); ret = write(sockfd, buff, strlen(buff)+1); if (ret == -1) { perror("client write"); exit(errno); } ret = read(sockfd, buff, sizeof(buff)); if (ret == -1) { perror("client read"); exit(errno); } printf("%s\n", buff); exit(0);}
server1.c
#include <sys/types.h>#include <sys/socket.h>#include <sys/stat.h>#include <sys/un.h>#include <netinet/in.h>#include <arpa/inet.h>#include <fcntl.h>#include <stdlib.h>#include <stdio.h>#include <errno.h>#include <signal.h>#define BUFF_SIZE 1024 //–Ë∂‘∏√»´æ÷±‰¡øΩ¯––ª•≥‚±£ª§,ªÚΩ¯––◊™¥¢°£struct sockaddr_in client_addr;int clientfd;static void str2up(char *p){ while (*p) { if (*p >= 'a' && *p <= 'z') { *p = *p - 'a' + 'A'; } p++; }}static void * client_thread_handle(void *arg){ char buff[BUFF_SIZE]; char tmp[100]; int fd = clientfd; int ret; ret = read(fd, buff, sizeof(buff)); if (ret==-1) { perror("read"); exit(1); } str2up(buff); sprintf(tmp, "-thread(%u)", pthread_self()); strcat(buff, tmp); ret = write(fd, buff, strlen(buff)+1); if (ret == -1) { perror("write"); exit(1); } sleep(3); pthread_exit(0);}int main(void){ int sockfd; struct sockaddr_in server_addr; int ret; int pd; socklen_t len; pthread_t pt; sockfd = socket (AF_INET, SOCK_STREAM, 0); server_addr.sin_addr.s_addr = htons(INADDR_ANY); server_addr.sin_family = AF_INET; server_addr.sin_port = htons(9000); /* π∂Àø⁄ø…÷ÿ∏¥∞Û∂® */ int on = 1; int ret_val; ret_val = setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)); if(ret_val < 0) { perror("setsockopt SO_REUSEADDR"); exit(1); } ret = bind(sockfd, (struct sockaddr*)&server_addr, sizeof(server_addr)); if (ret == -1) { perror("bind"); exit(errno); } ret = listen(sockfd, 5); if (ret == -1) { perror("listen"); exit(errno); } while (1) { clientfd = accept(sockfd, (struct sockaddr*)&client_addr, &len); if (clientfd == -1) { perror("accept"); //exit(errno); continue; } /* –Ë“™∂ÓÕ‚∂‘clientfdΩ¯––ª•≥‚±£ª§ªÚ’flΩ¯––◊™¥¢ */ ret = pthread_create(&pt, 0, client_thread_handle, 0); if (ret == -1) { perror("pthread_create"); //exit(errno); continue; } pthread_detach(pt); } exit(0);}
0 0
- Linux _多线程并发服务TCP
- Linux网络编程TCP之并发服务
- tcp多线程并发服务器
- 多线程_高并发
- Linux网络编程——tcp并发服务器(多线程)
- Linux网络编程——tcp并发服务器(多线程)
- Linux网络编程——tcp并发服务器(多线程)
- 简单的Linux环境下多线程TCP服务程序框架
- 简单的Linux环境下多线程TCP服务程序框架
- TCP-多线程并发上传图片
- 多线程并发库_<一>
- linux tcp高并发
- Linux下两种TCP网络服务器实现方式:循环服务&并发服务
- Linux并发(多线程)
- Linux多线程并发总结
- linux多线程+TCP服务器
- linux下搭建能同时接收UDP和TCP连接的socket并发多线程服务器
- 启联高并发tcp服务中间件TcpServer
- 倒序访问list
- 正则表达式 初探
- 针对于HttpComponet的功能资料
- 楼梯有n阶台阶,上楼可以一步上1阶,2阶,3阶,编程序计算共有多少种不同的走法?
- 快速幂取模算法
- Linux _多线程并发服务TCP
- Android-->MediaMuxer,MediaCodec,AudioRecord及Camera实现音频视频混合MP4文件
- 牛B的JustDecompile
- List添加新元素
- 西邮移动应用开发实验室笔试题
- 计算机的心智(二)进程
- 一些后台开发的基本问题(需要懂得)
- 低功耗蓝牙4.0BLE编程-nrf51822开发(2)
- [POJ 1149]PIGS[最大流][建图]