svrver服务器编写
来源:互联网 发布:汉语拼音注音软件 编辑:程序博客网 时间:2024/06/07 09:54
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/types.h> /* See NOTES */#include <sys/socket.h>#include <netinet/in.h>#include <netinet/ip.h>int main(){int ret;int listenfd;int connfd;char buf[256];struct sockaddr_in srvaddr;struct sockaddr_in cltaddr;socklen_t addlen;/* 1. 创建服务器(创建一socket套接字);socket */listenfd = socket(AF_INET, SOCK_STREAM, 0);if (listenfd == -1) {perror("server->socket");return -1;}printf("create listenfd = %d success !!\n", listenfd);int opt = 1;setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));/* 2. 设置服务器的IP地址和端口号(将socket和服务器的IP地址和端口号进行绑定);bind */memset(&srvaddr, 0, sizeof(struct sockaddr));srvaddr.sin_family = AF_INET;srvaddr.sin_port = htons(9999);srvaddr.sin_addr.s_addr = htonl(INADDR_ANY);ret = bind(listenfd, (const struct sockaddr *)&srvaddr, sizeof(struct sockaddr));if(ret == -1) {perror("server->bind");return -1;}printf("bind success !!!\n");/* 3. 启动监听(启动服务器);listen */ret = listen(listenfd, 0);if (ret == -1) {perror("server->listen");return -1;}printf("listen success !!\n");/* 4. 等待服务器的连接请求,如果没有连接请求则等待,如果有连接请求,则建立连接; accept */addlen = sizeof(socklen_t);memset(&cltaddr, 0, sizeof(struct sockaddr_in));connfd = accept(listenfd, (struct sockaddr *)&cltaddr, &addlen);if (connfd == -1) {perror("server->accept");return -1;}printf("connect connfd = %d success \n", connfd);printf("%x\n", cltaddr.sin_addr.s_addr);struct timeval time;time.tv_sec = 3;time.tv_usec = 0;setsockopt(connfd, SOL_SOCKET, SO_RCVTIMEO, &time, sizeof(time));while(1) {/* 5. 读写数据:read/write; */memset(buf, 0, sizeof(buf));ret = read(connfd, buf, sizeof(buf));if (ret == -1) {perror("client->read");//return -1; } ret = write(connfd, buf, sizeof(buf));if (ret == -1) {perror("client->write");return -1; } }/* 6. 关闭close; */return 0;}
阅读全文
0 0
- svrver服务器编写
- 编写轻量级WebService服务器
- 编写轻量级WebService服务器
- 推送服务器的编写
- 推送服务器的编写
- 推送服务器的编写
- 推送服务器的编写
- 使用twisted编写服务器
- JAVA编写WEB服务器
- erlang 服务器编写
- linux--http服务器编写
- 使用select编写服务器
- 使用epoll编写服务器
- VxWorks编写服务器模板
- 编写DHCP服务器
- libevent编写echo服务器
- select服务器编写
- 服务器的编写
- JVM学习
- 一个windosw端向linux端传文件python脚本
- javac编译多个包下的、依赖其他jar包的java文件
- Node.js中fs文件系统-与文件file相关;
- h3c构建中小企业网络 实验室手册 第1章 笔记
- svrver服务器编写
- POJ3276 The Cow Lexicon
- Leetcode 452. Minimum Number of Arrows to Burst Balloons
- retrofit框架学习
- java中的垃圾收集器相对于以前的语言的优势
- 自学编程需要注意什么?
- 数据库
- http
- java深入学习七之封装与继承,多态