网络
photon_wa
这个作者很懒,什么都没留下…
展开
-
C# 实现WebScoket客户端
C# 实现WebScoket客户端。原创 2024-08-27 15:22:56 · 570 阅读 · 0 评论 -
C++带重连功能的websocket client
【代码】使用WebSocket++/websocketpp的带重连功能的websocket client。原创 2023-06-20 09:34:45 · 959 阅读 · 0 评论 -
TC限速实践
确认好默认队列,因为一旦限速规则和默认队列重复,现在的机器都是远程登录的,如果限速过大,将直接导致你无法再进行远程操作,只能重启机器了……链接:https://www.jianshu.com/p/4477c68c9ec4。看完了这些,起初我只是想针对某个ip进行一下限速,这个过程中有几个小坑。商业转载请联系作者获得授权,非商业转载请注明出处。那么我要针对一个ip限速,可以执行下面这个脚本。tc暂时只能在实体机上执行。tc命令需要root来执行。原创 2023-03-10 13:47:47 · 483 阅读 · 0 评论 -
linux下使用libpcap库
Libpcap是一个开源C库,它提供了一个API,用于直接从Unix衍生操作系统的数据链路层捕获数据包。它被流行的数据包捕获应用程序(如tcpdump和snort)使用,使它们能够在几乎任何风格的Unix上运行。下面是一个基于libpcap的简单数据包嗅探器应用程序的示例, 该示例通过libpcap库接收数据链路层frame数据包,重组为TCP数据流,或UDP数据包,带有TCP重传、乱序缓存等功能。原创 2022-01-28 21:17:04 · 581 阅读 · 0 评论 -
使用boost asio raw socket创建第2层/ ethernet套接字(在C ++中)
// #include <boost/asio/detail/config.hpp>// #include <boost/asio/detail/socket_types.hpp>// #include <boost/asio/basic_raw_socket.hpp>// #include <boost/asio/ip/basic_endpoint.hpp>// #include <boost/asio/ip/basic_resolver.hp原创 2022-05-11 22:06:46 · 446 阅读 · 0 评论 -
linux raw socket 原始套接字
TCP socket,UDP socket只能处理传输层数据,而原始套接字raw socket绕过传输层直接获取网络链路层的数据包。我们平时用的tcpdump, libpcap都是基于raw socket实现的。一般使用方法如下: // raw socket int rawsock = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_IP)); if (rawsock < 0) { perror("SOCK_RAW err原创 2022-05-12 16:32:09 · 443 阅读 · 0 评论 -
只有同时打开tcpdump,libpcap应用程序才能抓到所有的包
只有同时打开tcpdump,libpcap应用程序才能抓到所有的包,否则流量很小,怎么解决?答案:打开网卡混杂模式原创 2022-02-23 14:38:59 · 1621 阅读 · 0 评论 -
从pcap文件中读数据并组播
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <arpa/inet.h>#include <netinet/in.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/socket.h>#include <原创 2021-09-03 09:49:22 · 347 阅读 · 0 评论 -
TCP标志位 FIN和RST的区别
断开链接FIN 有序释放RST 终止释放原创 2021-03-08 20:20:13 · 4651 阅读 · 1 评论 -
接收多客户链接的TCP Server: 使用多线程或select方法
1. 使用多线程方法:#include<stdio.h>#include<stdlib.h>#include<sys/socket.h>#include<netinet/in.h>#include<string.h>#include <arpa/inet.h>#include <fcntl.h> // for open#include <unistd.h> // for close#includ原创 2020-07-13 18:29:09 · 436 阅读 · 0 评论 -
libpcap 网络数据包捕获, Raw Socket
https://blog.csdn.net/htttw/article/details/7521053https://www.cnblogs.com/coder2012/archive/2013/04/13/3012390.html原创 2020-07-23 19:18:15 · 474 阅读 · 0 评论 -
SO_TIMESTAMP/SO_TIMESTAMPNS 获取硬件时间
用SO_TIMESTAMP/SO_TIMESTAMPNS 可以获取硬件时间, 前提是内核和网卡支持该功能能http://www.cs.fsu.edu/~baker/devices/lxr/source/2.6.31.13/linux/Documentation/networking/timestamping/timestamping.chttps://www.kernel.org/doc/...原创 2020-04-16 19:59:10 · 3472 阅读 · 0 评论 -
一个导致TCP数据乱序的问题
众所周知,TCP是面向连接的可靠的流数据传输方式, 有应答确认机制和重传机制,一般不会丢失数据,或数据顺序颠倒。【但是考虑下面这种情况:】Client端socket的send buffer满了(可能是因为没有及时收到应答,也可能是因为数据量太大,buffer size太小), 这时候send fail, Client端因此断开连接,并且我们设计了重连的机制, Client端马上新建一个sock...原创 2019-11-22 22:00:01 · 5249 阅读 · 3 评论 -
大小端字节序/网络字节序
字节序计算机上的数据在内存中是以1 字节(Byte)为单位存储的,1Byte = 8bits, 这是因为电子计算机ROM的最小信息单位是bit, 而CPU的数据总线一般为8根,即一次可读取1Byte.对于长度为1Byte的char型,不存在字节序的问题。而对于长度大于1Byte的数据类型,就存在字节序的问题。大、小端字节序大端字节序: 高位字节数据存放在内的低地址处,低位数据存放在内的高...原创 2019-05-09 20:44:58 · 1023 阅读 · 0 评论 -
UDP组播接收端的绑定问题bind(),IP_ADD_MEMBERSHIP
UDP组播接收的代码如下:struct sockaddr_in localSock;struct ip_mreq group;int sd;int datalen;char databuf[1024];int main (int argc, char *arg...原创 2019-09-26 20:44:17 · 7954 阅读 · 0 评论 -
Socker发送/接收缓冲区 及 Linux的TCP内核参数
TCP是面向连接的协议,有重传机制,能保证数据有序。发送数据时,会把发出去但未收到确认的消息放进send buffer里,根据【重传机制】,需要的时候会从buffer里取对应的消息重发。而接收数据时,因为消息不一定是有序到达的,会把先到达的大seq的消息放到recv buffer里,等前面的seq连续都到达后在按顺序送到应用层,并发送应答给对方。如果send buffer满了,调用socke...原创 2019-09-18 21:21:32 · 563 阅读 · 0 评论