Linux环境C C++起Socket Server监听8080端口的代码实现

代码抄录自《UNUX网络编程 卷一》,在实现开发环境中调试通过,经测试发现可以正常监听。(2017-09-06 21:56:31) 开发环境:CentOS,g++,VIM 功能:C++实现Socket通信的Server端,实现监听8080端口接收到的消息。

#include 
#include           /* See NOTES */
#include 
#include 
#include 
#include 
#include 
#include 

const int MAXLINE = 4096;
const int LISTENQ = 1024;

int main(int argc, char **argv)
{
    int     listenfd, connfd;
    socklen_t len;
    struct  sockaddr_in servaddr, cliaddr;
    char    buff[MAXLINE];
    time_t  ticks;
    bzero(&servaddr, sizeof(servaddr));

    servaddr.sin_family = AF_INET;
    servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
    servaddr.sin_port = htons(8080);

    listenfd = socket(AF_INET, SOCK_STREAM, 0);
    bind(listenfd, (struct sockaddr *)&servaddr, sizeof(servaddr));
    listen(listenfd, LISTENQ);

    for ( ; ; ) {
        len = sizeof(cliaddr);
        connfd = accept(listenfd, (struct sockaddr *) &cliaddr, &len);
        printf("connect from %s, port %d\n",
            inet_ntop(AF_INET, &cliaddr.sin_addr, buff, sizeof(buff)),
            ntohs(cliaddr.sin_port));

        read(connfd, buff, strlen(buff));
        printf("Recive msg: %s\n", buff);

        bzero(buff, sizeof(buff));
        ticks = time(NULL);
        snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks));
        write(connfd, buff, strlen(buff));
        printf("Send msg: %s\n", buff);

        close(connfd);
    }
    return 0;
}
加好友进主题群

感谢支持!


版权声明

弈心博客


首发 弈心博客,转载请附链接!

赞赏支持

感谢支持!


建站不易,感谢支持!

推荐阅读
web开发技术栈(框架)总结 Bootstrap-Layui-Amazeui-jQuery-vue-react-AngularJS-ci-Thinkphp-Yii-Laravel-Node-Django-springMVC-apache-nginx-mysql-redis…… 天呐,好多…… 小编虽说出身工业软件,但心里一直藏着一个UI梦。近两年,小编业余时间从零开始摸索web开发,把web开发常用的技术和框
3181

Disc性格测试:揭示你的内心世界 【Disc性格测试:揭示你的内心世界】 ![DISC](/im/sys/app/680a60fdf482d4079b146d6f1600b2ba-show.png) 你是否曾经对自己的性格特点感到好奇?想要了解自己的优点和改进空间?Disc性格测试是一种快速、准确的方法,可以帮助你了解自己的性格特点,从而更好地管理情绪、与他人沟通合作。 Disc是一种人类行为语言,由美国心理学家马斯顿博士在19
39

数字化时代,让你的商务沟通更上一层楼——电子名片全新升级! ![图片](https://www.yixzm.cn/img/1ea5aabbb91f914fb74b118bb3dc7b27)     在大数据环境背景下,信息的飞速传播促使了营销开始从传统到新型营销模式的转变,电子名片是移动营销牧师创新的桥梁,电子名片在营销中体现了最大效的应用,包括形形成了客户关系管理的资源整理、对名片的生动详细展示、基于地理位置的线下
36

2048——益智游戏的不二选择,免注册,免费畅玩     2014年,你或许已经不记得当时风靡网络的洗脑神曲《小苹果》,你或许不关心微博当时正式上市,你或许还分不清pm2.5和pm10的区别......但你一定知道这个当年火爆全球的益智小游戏—《2048》。近年来,随着智能手机的普及和迭代升级,众多手机游戏应运而生,2048,自2014年引领了智力挑战游戏的热潮,直到今天依旧热度不减。2048,简单操作、无
38

PHP7 引入的“??” 和“?:”的区别(三元运算符) ...
558

web前端开发技术储久良第三版第6章练习与实验答案 ### [web前端开发技术储久良第三版答案整理(1-9章)](https://www.yixzm.cn/blog/367.html) 练习6 **1.选择题** (1)D (2)A (3)D(4)B **2.填空题** (1)``、``,`` (2)border="0" (3)矩形;圆形;多边形。 3.简答题 (1)设置滚动空白空间就是指滚动文字背景和它周围文字及图像之间的空白空间范围。默认
12901

web前端开发技术储久良第三版第2章练习与实验答案 ### [web前端开发技术储久良第三版答案整理(1-9章)](https://www.yixzm.cn/blog/367.html) 练习2 **1.选择题** (1) B (2) D (3) A (4) B (5) A (6) B **2.填空题** (1) html、htm,index.html、default.html (2) head、body (3) 单、双,双,开
14286

web前端开发技术储久良第三版第12章练习与实验答案 ### [web前端开发技术储久良第三版答案整理(10-17章)](https://www.yixzm.cn/blog/368.html) ** 1.选择题 ** (1)D (2)C (3)B (4)C (5)A ** 2.填空题 ** (1)post、get (2)浏览器、服务器 (3)``、name、size、multiple (4)textarea、rows、co
16217

web前端开发技术储久良第三版第13章练习与实验答案 ### [web前端开发技术储久良第三版答案整理(10-17章)](https://www.yixzm.cn/blog/368.html) 练习13 ** 1.选择题 ** (1)C (2)A (3)D (4)C (5)A (6)D (7)B (8)D (9)C (10)D (11)C (12)A ** 2.填空题 ** (1)input、list、id。 (2) sr
12097

web前端开发技术储久良第三版第11章练习与实验答案 ### [web前端开发技术储久良第三版答案整理(10-17章)](https://www.yixzm.cn/blog/368.html) 练习11 **1.选择题** (1)B (2)D (3)D (4)B (5)D (6)B **2.填空题** (1)``、 ``、`` (2) rowspan 、3、 Colspan 、 5 (3) frame、rules (4) cellspa
18059

web前端开发技术储久良第三版第10章练习与实验答案 ### [web前端开发技术储久良第三版答案整理(10-17章)](https://www.yixzm.cn/blog/368.html) 练习12 **1.选择题** (1)B (2)A (3)C (4)D (5)A **2.简答题** (1)略 (2) display: none让对象不显示,原来不存在。 display:block—作用是显示特定对象;visibility: visib
20385

web前端开发技术储久良第三版答案整理(下:附录模拟试卷) [web前端开发技术储久良第三版答案整理(下:附录模拟试卷)_诗和远方_弈心博客](https://www.yixzm.cn/blog/369.html) [web前端开发技术储久良第三版答案整理(中:10-17章)_诗和远方_弈心博客](https://www.yixzm.cn/blog/368.html) [web前端开发技术储久良第三版答案整理(上:1-9章)_诗和远方_弈心博客](ht
6193