原创 socket傳輸大文件demo,附各函數原型

功能: 實際研發過程中,發現要從服務端發送大的數據文件給客戶端,但socket一次發送的數據包大小是有限制的,需要循環發送;循環發送需要考慮到文件何時發送完畢,所以,這裏服務端先發送文件大小給客戶端,然後再發送文件,客戶端根據接收文件大小

原创 vs2019編譯的程序在win7環境上運行失敗

使用vs2019在win10環境下編譯了一個exe文件,放到win7環境執行時,報錯 嘗試過從vs2019的安裝目錄下找到VCRUNTIME140.dll文件,放到執行目錄下。 依舊報錯: 原因如這篇文章所講:https://ww

原创 windows使用api接口添加路由

接口函數: CreateIpForwardEntry   代碼: #ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN #endif #include <windows.h>

原创 需研究整理問題記錄

1、socket傳輸大數據時,如果分批次傳輸(可先通過傳輸數據大小來判斷傳輸是否完成,demo) 2、linux socket send、recv函數 3、jsoncpp、cSJON解析、構造json,demo

原创 winpcap解析數據包

windows下庫文件,可以讀取windows網卡中數據包,並進行解析。 操作如下: vs2019添加winpcap庫 1、https://www.winpcap.org/devel.htm下載winpcap SDK包 2、winpcap

原创 TCP/IP頭部結構體

// i386 is little_endian. #ifndef LITTLE_ENDIAN #define LITTLE_ENDIAN (1) //BYTE ORDER #else #error Re

原创 docker配合wordpress搭建個人博客

環境:阿里雲vps服務器 centos7.2   1、安裝docker #執行以下命令自動安裝,耐心等待 curl -fsSL https://get.docker.com/ | sh 2、拉取鏡像 #拉取 wordpress 鏡像

原创 【問題記錄】socket斷開之後,端口長時間處於CLOSE_WAIT狀態

開發過程中,使用socket通信時,發現客戶端發送完消息之後,主動關閉了套接字,但服務端沒有主動關閉,會出現服務端上端口長時間CLOSE_WAIT的情況。客戶端是在windows上,服務端是在centos上。   解決方法:服務端處理完成

原创 進程間通信-信號(一個進程往另一個進程發送信號)

程序功能: signal.c程序接收兩個信號,SIGUSR1,SIGUSR2,接收到SIGUSR1之後,執行sig_usr_close函數,打印,並將全局變量m_switch置爲0;接收到SIGUSR2之後,執行sig_usr_open函

原创 第十三篇:socket套接字

TCP sokcet調用過程: 具體代碼參考:https://blog.csdn.net/xiadeliang1111/article/details/85210205 udp socket調用過程: 具體代碼參考:https://bl

原创 C語言解析pcap數據包格式

通過tcpdump命令或者wireshark抓取數據包。 如下圖所示: pcap文件格式: 24字節pcap文件頭+(16字節pcap數據包頭+數據包)*n   解析源碼如下: #include<stdio.h> #include<s

原创 linux內核驅動編寫,讀取網絡數據包,加載到設備文件

作用:編寫linux內核驅動程序,驅動程序讀取網絡數據包,對數據包進行解析,將tcp五元組加載到設備文件中,對設備文件數據進行讀取寫入到臨時文件。   讀取tcp數據包源碼: //print_tcp.c #include <linux

原创 linux kernel 驅動模塊,讀寫文件

linux kernel 驅動模塊,讀寫文件 測試文件:file_rw.c   #define pr_fmt(fmt) KBUILD_MODNAME ": %s: " fmt, __func__ #include <linux/init

原创 linux內核驅動程序讀取ICMP數據

目的:編寫linux kernel驅動程序,在掛載點上讀取icmp協議數據,打印icmp數據包內容。 //icmp頭部結構 struct icmphdr { __u8 type; //8位類型 __u8

原创 linux內核創建線程demo

#include <linux/module.h> #include <linux/netfilter.h> #include <linux/netfilter_ipv4.h> #include <linux/ip.h> #includ