- 博客(13)
- 收藏
- 关注
原创 自写copy函数 mycopy.c
#include “mycopy.h” #define BUF_SIZE 1024 int main(int argc, char *argv[]) { int fd_src = 0; int fd_dst = 0; int read_size = 0; int write_size = 0; char buf[BUF_SIZE] = {0}; if(argc != 3) { LOG_ERR("argc num err"); goto exit; } fd_src = open(ar
2020-06-04 00:05:59 524
原创 01-系统调用.c
一、操作系统的五大功能: { 1.进程管理 2.内存管理 3.文件系统管理 4.设备控制 5.网络管理 } 二、什么是系统调用 { 1.系统调用就是内核提供的接口函数 2.遵循POSIX标准,可移植性强 } 三、系统调用 I/O 函数 { 头文件 { #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <stdio.h&g
2020-06-02 23:56:08 155
原创 C语言实用log宏定义
C语言已经做了蛮久了,一直不知道平时的打印宏是怎么定义的。今天参考了他人写的一篇关于:#、##、VA_ARGC、##VA_ARGC 说明的文章,自己定义了4个level的log打印宏,感觉还挺好玩,终于不用再对这个迷惘了!感谢这位大神,顺便附上自己的代码。 参考文章: https://blog.csdn.net/q2519008/article/details/80934815 ...
2020-05-16 00:27:17 560
原创 logDefine.h
#ifndef LOG_DEFINE_H #define LOG_DEFINE_H #define LOG_LEVEL_OFF (0) #define LOG_LEVEL_ERR (1) #define LOG_LEVEL_WRN (2) #define LOG_LEVEL_INF (3) #define LOG_LEVEL_DBG (4) #define LOG_LEVEL LOG_LEVEL_INF #define LOG_
2020-05-16 00:24:42 188
原创 TCP socket 编程学习完毕
今天主要是学完了TCP socket客户端和服务器编程的代码,准备开动写聊天工具啦。在写具体代码之前,想把基础的东西先写好,像一些类型定义,打印宏定义,以及Makefile编写。在写代码之前,把框架先搭好还是挺重要的! 学了点课外知识: #在C语言中表示把变量变成字串(变量的名称),注意#只能用在宏中 #define PRINT(A) printf("%s = %d\n", #A, A); int a = 10; PRINT(a); 程序输出的结果就是: a = 10; ...
2020-05-15 00:15:09 117
原创 TCP Server和Client的实现流程
1.TCP Server的实现流程 创建socket---->绑定IP地址和端口号---->Server处于侦听状态---->接受Client的建立连接请求---->发送/接收数据---->关闭socket socket(…)---->bind(…)---->listen(…)---->accept(…)---->send/recv(…)---->close(…) 2.TCP Client的实现流程 创建socket---->绑定IP地址和端
2020-05-14 00:30:36 1388
原创 socket API 函数
没想到吧,socket网络编程总共只有9个API函数! socket(…):创建socket bind(…):绑定IP地址和端口号 listen(…):TCP server处于监听状态 accept(…):TCP server接受连接请求 connect(…):TCP client发起连接请求 send(…):TCP server/client 发送数据 recv(…):TCP server/client 接收数据 sendto(…):UDP 发送数据 recvfrom(…):UDP 接收数据 ...
2020-05-13 00:18:09 185 1
原创 网络字节序和主机字节序
网络字节序:一般是大端序 主机字节序: 大端:低地址存高位 小端:低地址存低位 记忆方法:端为首端,可以理解为存放变量的开始地址(最低地址),如果这个地址存放的是高位,就是大端,存放的是低位,就是小端 疑惑:结构体的字节序是咋样的? 目前理解:结构体中的各个成员的起始地址是依次递增的,第二个成员的起始地址一定大于第一个,而字节序只针对于基本类型而言。 ...
2020-05-12 00:18:12 83
原创 socket是啥?
socket是啥? 一种特殊的文件描述符 网络编程接口 位于应用层和传输层之间的抽象层 socket存在的目的? 简化网络应用程序的开发,使得开发网络应用程序像读写文件一样简单。 socket分类? 流式套接字:传输层使用TCP协议 用户数据报套接字:传输层使用UDP协议 原始套接字:不使用传输层,直接调网络层(这种平时基本不用) ...
2020-05-11 00:44:32 95
原创 TCP/IP协议基础补充
传输层中: TCP:可靠的,有连接的,有序的数据传输 UDP:不可靠的,无连接的,无序的数据传输 有连接和无连接是什么意思? 有连接就是传输之前,传输路线已经确定。比如从广州到北京,路线是:广州---->武汉---->北京。这个路线确定后,就不会改变,每一份数据都是走这个路径,并且先发先到。 无连接就是路线不确定,可能是广州---->武汉---->北京,也可能是广州---->上海---->南京---->北京,路径是不定的,所以可能后发先至。 ...
2020-05-11 00:38:35 74
原创 初识TCP/IP协议
简单来讲TCP/IP协议就是为了实现两台电脑之间的对话。既然是对话,语言必须要相通。所以要实现TCP/IP协议,首先得约定一种大家都懂的“语言”。举个简单的例子,在古代,烽火狼烟表示有敌人进犯,这个就是约定。 为了简单化,TCP/IP协议是分层实现的,有哪些层呢?从上往下: 应用层:HTTP FTP 等等 传输层:TCP UDP 用端口号标识进程 网络层:IP协议,用IP地址标识主机 网络接口层:以太网协议(Ethernet),用MAC地址标识主机 还有一堆理论的烦人的东西,暂时还不明白,就写这么多了。
2020-05-09 00:30:14 119
原创 我的第一篇博客
开始写博客的第一天 今天是2020年5月7日,准备开始学习Linux网络编程,为了监督自己,决定每天写博客总结自己当天的收获,并应老婆要写一个聊天工具给她玩。 ...
2020-05-08 00:05:19 57
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人