linux-TCP简单服务器代码

来源:互联网 发布:歌华有线营业厅淘宝 编辑:程序博客网 时间:2024/06/06 17:54

0x00  开头

写代码前,一定要先理清楚实现的逻辑,之后查找是否存在实现逻辑的系统函数。以下为整理的逻辑

1.创建socket设备文件

2.bind 绑定设备文件

3.listen 开始监听是否有消息进入

4.accept 对进入的进行消息进行处理



0x01 代码实现

 

/*************************************************************************> File Name: server.cpp> Author: Reacher> Mail: > Created Time: Mon 28 Aug 2017 06:07:48 PM PDT ************************************************************************/#include<iostream>#include <string.h>#include <stdlib.h>#include <sys/types.h>#include <sys/socket.h>#include <stdio.h>#include <netinet/in.h>#include <arpa/inet.h>#include <unistd.h>using namespace std;#define ErrorMsg(msg){\       do{\         printf("%s \n", msg);   \       }while(0);\}int main(int argc,  char* argv[]){    int execute_status = 0;    int opear_fd = 0;    int socket_fd =  socket(AF_INET, SOCK_STREAM, 0);    if(-1 == socket_fd)    {        printf("err!\n");        exit(1);    }        struct sockaddr_in addr;    addr.sin_family = AF_INET;    addr.sin_port = htons(9999);    addr.sin_addr.s_addr = inet_addr("127.0.0.1");    execute_status = bind(socket_fd,(sockaddr*)&addr, sizeof(struct sockaddr_in));    if(-1 == execute_status)    {        ErrorMsg("bind err!");        exit(1);    }    execute_status = listen(socket_fd, 25);    if(-1 == execute_status)    {        ErrorMsg("listen err!");        exit(1);    }    opear_fd = accept(socket_fd,NULL, NULL);    if(-1 == opear_fd)    {        ErrorMsg("accept err!");        exit(1);    }    char buf[1024];    memset(buf, 0, sizeof(buf));    read(opear_fd, buf, sizeof(buf));    printf("%s \n", buf);    return 0;}

编译指令:g++ -o server server.cpp

 



原创粉丝点击