c语言之Linux网络开发

一、网络编程预备知识 socket IP地址 端口号 字节序 (一)socket 是一个编程接口 是一种特殊的文件描述符 (everything in Unix is a file) 并不仅限于TCP/IP协议 面向连接 (Transmission Control Protocol - TCP/IP) 无连接 (User Datagram Protocol -UDP 和 Inter-network Packet Exchange - IPX) (二)socket类型 1、流式套接字(SOCK_STREAM) 提供了一个面向连接、可靠的数据传输服务,数据无差错、无重复的发送且按发送顺序接收。内设置流量控制,避免数据流淹没慢的接收方。数据被看作是字节流,无长度限制。 2、数据报套接字(SOCK_DGRAM) 提供无连接服务。数据包以独立数据包的形式被发送,不提供无差错保证,数据可能丢失或重复,顺序发送,可能乱序接收。 3、原始套接字(SOCK_RAW) 可以对较低层次协议如IP、ICMP直接访问。 (三)socket的位置 (四)IP地址 IP地址是Internet中主机的标识: Internet中的主机要与别的机器通信必须具有一个IP地址 IP地址为32位(IPv4)或者128位(IPv6) 每个数据包都必须携带目的IP地址和源IP地址,路由器依靠此信息为数据包选择路由 表示形式:常用点分形式,如202.38.64.10,最后都会转换为一个32位的无符号整数 (五)端口号 为了区分一台主机接收到的数据包应该转交给哪个进程来进行处理,使用端口号来区别 TCP端口号与UDP端口号独立 端口号一般由IANA (Internet Assigned Numbers Authority) 管理 众所周知端口:1~1023(1~255之间为众所周知端口,256~1023端口通常由UNIX系统占用) 注册端口:1024~49150 动态或私有端口:49151~65535 (六)字节序 不同类型CPU的主机中,内存存储多字节整数序列有两种方法,称为主机字节序(HBO): 小端序(little-endian) - 低序字节存储在低地址 将低字节存储在起始地址,称为“Little-Endi...

Vue前端篇之Easy-Mock服务搭建

一、搭建前准备 

详情查看: GitHub - easy-mock/easy-mock: A persistent service that generates mock data quickly and provids visualization view. 

搭建Easy-Mock服务需要先完成以下服务的搭建: 

  • 安装node.js 
  • 安装mongodb 
  • 安装redis 

(一)安装node.js

# 下载 wget https://nodejs.org/dist/v8.9.0/node-v8.9.0-linux-x64.tar.xz # 解压 tar xf node-v8.9.0-linux-x64.tar.xz # 重命名 mv node-v8.9.0-linux-x64 node # 移动到合适位置 mv node /usr/local/ # 添加到环境变量中在/etc/profile文件中添加 export NODE_HOME=/usr/local/node/ export PATH=$NODE_HOME/bin:$PATH #然后使其立即生效 source /etc/profile # 查看版本 node -v

(二) 安装MongoDB

# 下载 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz # 解压 tar -xzvf mongodb-linux-x86_64-3.0.6.tgz # 重命名 mv mongodb-linux-x86_64-3.0.6 mongodb # 移动到合适位置 mv mongodb /usr/local/ # 添加到环境变量中在/etc/profile文件中添加 export NODE_HOME=/usr/local/node/ export MONGODB_HOME=/usr/local/mongodb/ export PATH=$NODE_HOME/bin:$MONGODB_HOME/bin:$PATH #然后使其立即生效 source /etc/profile # 查看版本 mongo --version
安装完毕后进行配置: 
  • 创建数据目录、配置目录
mkdir -p /mongodb/{data,conf}
  • 新建配置文件 
在conf目录下新建mongodb.cnf文件:
dbpath=/mongodb/data logpath=/mongodb/data/mongo.log logappend=true fork=true port=27017 journal=true

通过配置文件进行启动:

mongod -f /mongodb/conf/mongodb.cnf

(四)安装redis

# 下载 wget http://download.redis.io/releases/redis-2.8.17.tar.gz # 解压 tar -xzvf redis-2.8.17.tar.gz # 重命名 mv redis-2.8.17 redis # 编译,进入到redis目录下执行make命令,此时在 redis/src目录下会生成redis-server、redis-cli等工具 cd redis make # 移动到合适位置 mv redis /usr/local/ # 添加到环境变量中在/etc/profile文件中添加 export NODE_HOME=/usr/local/node/ export MONGODB_HOME=/usr/local/mongodb/ export REDIS_HOME=/usr/local/redis/ export PATH=$NODE_HOME/bin:$MONGODB_HOME/bin:$REDIS_HOME/src:$PATH #然后使其立即生效 source /etc/profile # 查看版本 redis-server --version
启动redis:
redis-server /usr/local/redis/redis.conf

二、Easy-Mock部署 

(一)前台部署

# 下载 wget https://github.com/easy-mock/easy-mock/archive/refs/tags/v1.6.0.tar.gz # 解压 tar -xzvf v1.6.0.tar.gz # 重命名 mv easy-mock-1.6.0 easy-mock # 移动到合适位置 mv easy-mock /usr/local/ # 进入项目目录,安装依赖 cd /usr/local/easy-mock/ npm install

但是在安装过程中会出现各种问题,所以首先需要进行一些配置: 

  • .npmrc
registry=https://registry.npm.taobao.org strict-ssl=false proxy=null

上面的配置可解决下面的问题: 

问题一:

... npm ERR! code ENOTFOUND npm ERR! errno ENOTFOUND ...
问题二:
error request to https://registry.cnpmjs.org/@types%2fnode failed, reason: Hostname/IP doesn't match certificate's altnames: "Host: registry.cnpmjs.org. is not in the cert's altnames: DNS:r.cnpmjs.org"
  • npm install -g node-gyp 
解决如下问题:
gyp WARN EACCES user "root" does not have permission to access the dev dir "/usr/local/easy-mock/node_modules/dtrace-provider/.node-gyp/8.9.0"

此时,再去执行npm install 即可。注意的是7300端口打开或者关闭防火墙,systemctl stop firewalld。 

  • 删除package-lock.json文件 
解决如下问题:
npm WARN tar ENOENT: no such file or directory, open '/usr/local/easy-mock/...

(二)后台部署 

上述项目只能在前台跑,一旦关闭页面就不行了,所以需要后台运行。

# 安装pm2 npm install -g pm2 # build npm run build # 启动 pm2 start app.js --name app # 关闭服务 pm2 stop app

此时,访问页面: 

点击登陆,如果不存在就自动注册。 

(四)创建项目

  • 创建个人项目

  • 编辑项目属性

  • 创建成功

  • 创建接口并测试

进入创建的项目中:

创建一个接口:

访问这个接口:



更多文章合集前往: 往期精彩文章

此博客中的热门博文

玩转虚拟机系列之如何搭建虚拟机

玩转虚拟机系列之远程工具

玩转虚拟机系列之如何高效创建虚拟机