设为首页 加入收藏

TOP

IO多路复用(二) -- select、poll、epoll实现TCP反射程序(三)
2019-09-02 23:06:59 】 浏览:56
Tags:复用 select poll epoll 实现 TCP 反射 程序
); if (listenfd == -1) { perror("socket error:"); exit(1); } bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; inet_pton(AF_INET, ip, &servaddr.sin_addr); servaddr.sin_port = htons(port); if (bind(listenfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) == -1) { perror("bind error: "); exit(1); } return listenfd; }

客户端代码

#include "multiplexing.h"
#define MAXLINE     1024
#define IPADDRESS   "127.0.0.1"
#define SERV_PORT   8787

static void handle_connection(int sockfd);

int main(int argc, char *argv[]) {
    int                 sockfd;
    struct sockaddr_in  servaddr;
    sockfd = socket(AF_INET, SOCK_STREAM, 0);
    bzero(&servaddr, sizeof(servaddr));
    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons(SERV_PORT);
    inet_pton(AF_INET, IPADDRESS, &servaddr.sin_addr);
    connect(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr));

    // 改动此处,调用不同的IO复用函数
    MySelect mltp(2, sockfd);
    //MyPoll mltp(2, sockfd);
    //MyEpoll mltp(2, sockfd);
    
    poll.client_do_multiplexing(); // 处理客户端
    return 0;
}

运行结果

服务端:

客户端:

完整代码可以访问笔者github:https://github.com/yearsj/ClientServerProject.git

参考资料

IO多路复用之select总结

IO多路复用之poll总结

IO多路复用之epoll总结

作者:yearsj
转载请注明出处:https://www.cnblogs.com/yearsj/p/9647351.html
segmentfault对应博文:https://segmentfault.com/a/1190000016400430

首页 上一页 1 2 3 4 5 6 下一页 尾页 3/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇linux批量检测服务器能否ping通和.. 下一篇操作系统:进程的概念和与程序的..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目