11.UDP Posix 3


UDP Server /* * 函数名称: udp_server_entry * 作 者: 黄彦杰 Lenn * 设计日期: 2024-07-26 * 功能描述: udp server * 返 回 值: 成功返回0,失败返回-1 */ static int udp_server_e

12.UDP Posix 4


今天的任务就是把这个代码调通,这个代码量上来之后,调代码真是个痛苦的过程。 Debug 看一下网卡信息 加几个打印看看

15.UDP Control Block


结构体 tcp控制块 // tcp control block typedef struct __ln_tcp_stream { int fd; uint32_t sip; uint32_t dip; uint16_t sport; uint16_t d

14.进程间通信组件架构设计


Linux进程通信方式 管道:创建的时候分配一个页大小内存,空间有限,不适合大量数据传输。 消息队列:有两次copy造成额外的CPU消耗,不适合大量信息传输,效率比较低。 共享内存:多个进程共享一块内存,没有同步机制,需要自己实现同步机制。 套接字:在单机的情况下面走网络传输效率低。 信号量:是一种

13.Unix TCP


tcp server #include <stdio.h> #include <arpa/inet.h> #include <sys/socket.h> #include <netinet/in.h> #include <sys/types.h> #include <string.h> int m

16.TCP Control Block Bebug 1


随着代码量增加和逻辑的复杂度提高,需要专门debug一下,很难一次就写对。 编译 Makefile # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2010-2014 Intel Corporation # binary name AP

17.TCP Server Status Transmission


组织tcp数据包 /* * 函数名称: ln_tcp_encode * 作 者: 黄彦杰 Lenn * 设计日期: 2024-08-02 * 功能描述: 组织tcp数据包 * 返 回 值: 0 */ static int ln_tcp_encode(uint8_t* pktbuf,

18.TCP Control Block Debug 2


上午调了很久,下午发现core dump不是必现的,说明内存泄漏的地方暂时可以不找,但是可以从抓包上来看我们tcp connect的流程是有问题的。 从上图中可以看出,这个ACK有问题,说我们没有设置ACK。所以我们按照这个思路排查 问题解决

19.TCP Transmission


完成tcp的状态,消息收发。 每次调试代码都很痛苦啊,即使是一次一次地迭代。调试了一天,解决了下面的几个问题。 这里编译器设置的问题,需要给case后的语句加上大括号。这里昨天写的时候也遇到了。 这里是连接

20.TCP Posix API 1


和udp一样,我们需要实现和系统调用一样的接口来实现我们的tcp server。先来看看我们之前写的unix_tcp使用了哪些接口,这边我加上两个系统调用,分别是接收数据和发送数据。 #include <stdio.h> #include <arpa/inet.h> #include <sys/so