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
阅读全文
0 0
- linux-TCP简单服务器代码
- linux建立简单服务器(TCP)
- linux-TCP简单客户端代码
- 简单的多线程的TCP服务器代码
- Linux TCP 服务器编程(二):简单的并发服务器
- 简单的TCP 流式socket 服务器和客户端代码示例
- 简单TCP服务器
- 简单的TCP服务器
- 简单的TCP服务器
- Java.简单TCP服务器
- 简单TCP 循环服务器
- Java.简单TCP服务器
- 简单建立基于Linux建立并发TCP服务器
- linux 服务器/客户端 tcp通信的简单例子
- Linux C TCP Socket实现客户与服务器简单通信
- Linux C TCP Socket实现客户与服务器简单通信
- Linux下TCP客户端和服务器代码编写
- linux-socket tcp客户端服务器编程模型及代码详解
- C#调用触摸屏小键盘
- Akka(20): Stream:异步运算,压力缓冲-Async, batching backpressure and buffering
- csdn如何转载别人的文章
- 设置UISearchBar 的_UISearchBarSearchFieldBackgroundView 控件的圆角
- Python7:from module import * 和 import module 的区别
- linux-TCP简单服务器代码
- mysql 查询group by 报错
- 符号管理
- 解决IE浏览器中解决IE浏览中AJAX只能运一次的IE缓存问题
- Unity入门操作_UGUI_Button理论_025
- python用open()函数打开.py等文档时出现编码错误解决办法
- Android项目汇总
- [主席树维护HASH && SET维护DFS序] Codechef. Walks on the binary tree
- Easyui Datagrid 根据字段动态合并行