
网络
骑猪等风
feel it, not to think
展开
-
UDP使用connect()和send()函数
UDP socket使用connect()函数连接服务器地址后,可直接调用send()函数发送数据,而不必像sendto()函数那样每次都要指定服务器地址,据说这样可以提高效率。来写两个小程序玩玩:client.cpp#include <stdio.h>#include <string.h>#include <unistd.h>#include <sys/socket.h>#include <arpa/inet.h>#inc原创 2022-01-06 11:08:22 · 2908 阅读 · 2 评论 -
TCP SO_SNDBUF
最近做了个tcp测速工具,在部分机器上测速结果很小,只有其它机器的十分之一,折腾了一整天,最后发现是那些机器的发送缓冲区太小了。调整发送缓冲区大小:原创 2021-05-15 09:46:04 · 831 阅读 · 0 评论 -
mongoose http服务器对TCP流的接收处理
众所周知,TCP是流传输协议,存在粘包问题;发送端每次发送一个单元的数据,接收端收到的却不一定是一个单元的数据,可能是0.5个单元,1.5个单元或者其它任意大小的数据长度。所以接收端需要有一个可动态存储的接收缓存区和数据完整性验证机制;完整性验证需要依赖于具体的应用层协议;下面就通过mongoose http服务器的源码来学习如何实现动态缓存和完整性验证。MG_INTERNAL void mg原创 2017-05-07 22:34:46 · 1944 阅读 · 0 评论 -
C++实现简单的HTTP客户端(阻塞方式)
项目中用到的HTTP请求功能,自己简单写了个客户端,实现了POST方式,GET方式实现应该也很简单(空接口已经写好:=))。应该支持多线程(这个很重要)。HttpClient.h#ifndef _HTTP_CLIENT_H_#define _HTTP_CLIENT_H_#define HTTP_DEFAULT_REQUEST_TIMEOUT (60*1000)#defin原创 2017-08-18 16:23:43 · 5537 阅读 · 0 评论 -
URL编码/解码
inline static unsigned char char_to_hex( unsigned char x ) { return (unsigned char)(x > 9 ? x + 55: x + 48); } inline static int is_alpha_number_char( unsigned char c ) { if ( (c >= 'a' &转载 2017-12-12 09:36:42 · 243 阅读 · 0 评论 -
p2p通信原理
原文地址:http://www.cnblogs.com/pannengzhi/p/4800526.html3.3 UDP打洞(UDP hole punching) 第三种P2P通信技术,被广泛采用的,名为“P2P打洞“。P2P打洞技术依赖于通常防火墙和cone NAT允许正当的P2P应用程序在中间件中打洞且与对方建立直接链接的特性。以下主要考虑两种常见的场景,以及应用程序如何设计去完美地处理这些...转载 2018-05-11 21:19:44 · 355 阅读 · 0 评论