<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_34199740的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_34199740</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_34199740]]></copyright><item><title><![CDATA[001-uboot编译体验]]></title><link>https://blog.youkuaiyun.com/qq_34199740/article/details/125789802</link><guid>https://blog.youkuaiyun.com/qq_34199740/article/details/125789802</guid><author>qq_34199740</author><pubDate>Thu, 14 Jul 2022 18:27:13 +0800</pubDate><description><![CDATA[uboot编译体验]]></description><category></category></item><item><title><![CDATA[自写copy函数 mycopy.c]]></title><link>https://blog.youkuaiyun.com/qq_34199740/article/details/106536045</link><guid>https://blog.youkuaiyun.com/qq_34199740/article/details/106536045</guid><author>qq_34199740</author><pubDate>Thu, 04 Jun 2020 00:05:59 +0800</pubDate><description><![CDATA[#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]]></description><category></category></item><item><title><![CDATA[01-系统调用.c]]></title><link>https://blog.youkuaiyun.com/qq_34199740/article/details/106511122</link><guid>https://blog.youkuaiyun.com/qq_34199740/article/details/106511122</guid><author>qq_34199740</author><pubDate>Tue, 02 Jun 2020 23:56:08 +0800</pubDate><description><![CDATA[一、操作系统的五大功能：
{
1.进程管理
2.内存管理
3.文件系统管理
4.设备控制
5.网络管理
}
二、什么是系统调用
{
1.系统调用就是内核提供的接口函数
2.遵循POSIX标准，可移植性强
}
三、系统调用 I/O 函数
{
头文件
{
#include &lt;sys/types.h&gt;
#include &lt;sys/stat.h&gt;
#include &lt;fcntl.h&gt;
#include &lt;unistd.h&gt;
#include &lt;stdio.h&g]]></description><category></category></item><item><title><![CDATA[C语言实用log宏定义]]></title><link>https://blog.youkuaiyun.com/qq_34199740/article/details/106152569</link><guid>https://blog.youkuaiyun.com/qq_34199740/article/details/106152569</guid><author>qq_34199740</author><pubDate>Sat, 16 May 2020 00:27:17 +0800</pubDate><description><![CDATA[C语言已经做了蛮久了，一直不知道平时的打印宏是怎么定义的。今天参考了他人写的一篇关于：#、##、VA_ARGC、##VA_ARGC 说明的文章，自己定义了4个level的log打印宏，感觉还挺好玩，终于不用再对这个迷惘了！感谢这位大神，顺便附上自己的代码。
参考文章：

https://blog.youkuaiyun.com/q2519008/article/details/80934815


...]]></description><category></category></item><item><title><![CDATA[logDefine.h]]></title><link>https://blog.youkuaiyun.com/qq_34199740/article/details/106152747</link><guid>https://blog.youkuaiyun.com/qq_34199740/article/details/106152747</guid><author>qq_34199740</author><pubDate>Sat, 16 May 2020 00:24:42 +0800</pubDate><description><![CDATA[#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_]]></description><category></category></item><item><title><![CDATA[TCP socket 编程学习完毕]]></title><link>https://blog.youkuaiyun.com/qq_34199740/article/details/106132014</link><guid>https://blog.youkuaiyun.com/qq_34199740/article/details/106132014</guid><author>qq_34199740</author><pubDate>Fri, 15 May 2020 00:15:09 +0800</pubDate><description><![CDATA[今天主要是学完了TCP socket客户端和服务器编程的代码，准备开动写聊天工具啦。在写具体代码之前，想把基础的东西先写好，像一些类型定义，打印宏定义，以及Makefile编写。在写代码之前，把框架先搭好还是挺重要的！
学了点课外知识：
#在C语言中表示把变量变成字串（变量的名称），注意#只能用在宏中
#define PRINT(A)    printf("%s = %d\n", #A, A);
int a = 10;
PRINT(a);
程序输出的结果就是：
a = 10;

...]]></description><category></category></item><item><title><![CDATA[TCP Server和Client的实现流程]]></title><link>https://blog.youkuaiyun.com/qq_34199740/article/details/106110633</link><guid>https://blog.youkuaiyun.com/qq_34199740/article/details/106110633</guid><author>qq_34199740</author><pubDate>Thu, 14 May 2020 00:30:36 +0800</pubDate><description><![CDATA[1.TCP Server的实现流程
创建socket----&gt;绑定IP地址和端口号----&gt;Server处于侦听状态----&gt;接受Client的建立连接请求----&gt;发送/接收数据----&gt;关闭socket
socket(…)----&gt;bind(…)----&gt;listen(…)----&gt;accept(…)----&gt;send/recv(…)----&gt;close(…)
2.TCP Client的实现流程
创建socket----&gt;绑定IP地址和端]]></description><category></category></item><item><title><![CDATA[socket API 函数]]></title><link>https://blog.youkuaiyun.com/qq_34199740/article/details/106088623</link><guid>https://blog.youkuaiyun.com/qq_34199740/article/details/106088623</guid><author>qq_34199740</author><pubDate>Wed, 13 May 2020 00:18:09 +0800</pubDate><description><![CDATA[没想到吧，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 接收数据

...]]></description><category></category></item><item><title><![CDATA[网络字节序和主机字节序]]></title><link>https://blog.youkuaiyun.com/qq_34199740/article/details/106066265</link><guid>https://blog.youkuaiyun.com/qq_34199740/article/details/106066265</guid><author>qq_34199740</author><pubDate>Tue, 12 May 2020 00:18:12 +0800</pubDate><description><![CDATA[网络字节序：一般是大端序
主机字节序：
大端：低地址存高位
小端：低地址存低位
记忆方法：端为首端，可以理解为存放变量的开始地址（最低地址），如果这个地址存放的是高位，就是大端，存放的是低位，就是小端
疑惑：结构体的字节序是咋样的？
目前理解：结构体中的各个成员的起始地址是依次递增的，第二个成员的起始地址一定大于第一个，而字节序只针对于基本类型而言。

...]]></description><category></category></item><item><title><![CDATA[socket是啥？]]></title><link>https://blog.youkuaiyun.com/qq_34199740/article/details/106045801</link><guid>https://blog.youkuaiyun.com/qq_34199740/article/details/106045801</guid><author>qq_34199740</author><pubDate>Mon, 11 May 2020 00:44:32 +0800</pubDate><description><![CDATA[socket是啥？

一种特殊的文件描述符
网络编程接口
位于应用层和传输层之间的抽象层

socket存在的目的？
简化网络应用程序的开发，使得开发网络应用程序像读写文件一样简单。
socket分类？

流式套接字：传输层使用TCP协议
用户数据报套接字：传输层使用UDP协议
原始套接字：不使用传输层，直接调网络层（这种平时基本不用）


...]]></description><category></category></item><item><title><![CDATA[TCP/IP协议基础补充]]></title><link>https://blog.youkuaiyun.com/qq_34199740/article/details/106045726</link><guid>https://blog.youkuaiyun.com/qq_34199740/article/details/106045726</guid><author>qq_34199740</author><pubDate>Mon, 11 May 2020 00:38:35 +0800</pubDate><description><![CDATA[传输层中：
TCP：可靠的，有连接的，有序的数据传输
UDP：不可靠的，无连接的，无序的数据传输
有连接和无连接是什么意思？
有连接就是传输之前，传输路线已经确定。比如从广州到北京，路线是：广州----&gt;武汉----&gt;北京。这个路线确定后，就不会改变，每一份数据都是走这个路径，并且先发先到。
无连接就是路线不确定，可能是广州----&gt;武汉----&gt;北京，也可能是广州----&gt;上海----&gt;南京----&gt;北京，路径是不定的，所以可能后发先至。

...]]></description><category></category></item><item><title><![CDATA[初识TCP/IP协议]]></title><link>https://blog.youkuaiyun.com/qq_34199740/article/details/106010057</link><guid>https://blog.youkuaiyun.com/qq_34199740/article/details/106010057</guid><author>qq_34199740</author><pubDate>Sat, 09 May 2020 00:30:14 +0800</pubDate><description><![CDATA[简单来讲TCP/IP协议就是为了实现两台电脑之间的对话。既然是对话，语言必须要相通。所以要实现TCP/IP协议，首先得约定一种大家都懂的“语言”。举个简单的例子，在古代，烽火狼烟表示有敌人进犯，这个就是约定。
为了简单化，TCP/IP协议是分层实现的，有哪些层呢？从上往下：
应用层：HTTP FTP 等等
传输层：TCP UDP 用端口号标识进程
网络层：IP协议，用IP地址标识主机
网络接口层：以太网协议（Ethernet），用MAC地址标识主机
还有一堆理论的烦人的东西，暂时还不明白，就写这么多了。

]]></description><category></category></item><item><title><![CDATA[我的第一篇博客]]></title><link>https://blog.youkuaiyun.com/qq_34199740/article/details/105985063</link><guid>https://blog.youkuaiyun.com/qq_34199740/article/details/105985063</guid><author>qq_34199740</author><pubDate>Fri, 08 May 2020 00:05:19 +0800</pubDate><description><![CDATA[开始写博客的第一天
今天是2020年5月7日，准备开始学习Linux网络编程，为了监督自己，决定每天写博客总结自己当天的收获，并应老婆要写一个聊天工具给她玩。

...]]></description><category></category></item></channel></rss>