网络编程
chzuping
这个作者很懒,什么都没留下…
展开
-
一个函数实现网络故障诊断
该代码由网上的文章“微软ping程序源代码完整版”修改而来。该文实现一个完整的ping命令,但是大部分时候,为方便在其他程序中调用,在此将器封装成一个独立的函数。#include "stdafx.h"#pragma comment(lib,"ws2_32.lib")#include #include #include #define ICMP_ECHO 8 #de原创 2013-09-06 15:05:33 · 1366 阅读 · 0 评论 -
TCP选项之SO_LINGER
文章来源:http://blog.chinaunix.net/uid-29075379-id-3904022.htmlSO_LINGER这个选项在我以前带队改造haproxy的时候引出过一个reset(RST)客户端连接的bug。SO_LINGER作用设置函数close()关闭TCP连接时的行为。缺省close()的行为是,如果有数据残留在socket发送缓冲区中则系统将继续发转载 2013-09-18 11:32:02 · 1102 阅读 · 0 评论 -
UDP中一个包的大小最大能多大
1.在进行UDP编程的时候,我们最容易想到的问题就是,一次发送多少bytes好? 当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,我这里仅对 像ICQ一类的发送聊天消息的情况作分析,对于其他情况,你或许也能得到一点帮助: 首先,我们知道,TCP/IP通常被认为是一个四层协议系统,包括链路层,网络层,运输层,应用层. UDP属于运输层,下转载 2013-09-18 11:56:48 · 3204 阅读 · 0 评论 -
TCP知识片段
文章来源:http://blog.chinaunix.net/uid-29075379-id-3896840.htmlTCP之ACK发送情景我现在的理解,在有以下几种情景,TCP会把ack包发出去:1.收到1个包,启动200ms定时器,等到200ms的定时器到点了(第二个包没来),于是对这个包的确认ack被发送。这叫做“延迟发送”。2.收到1个包,启动200ms定时转载 2013-09-18 13:47:15 · 1113 阅读 · 0 评论 -
TCP之深入浅出send和recv
文章来源:http://blog.chinaunix.net/uid-29075379-id-3895700.html在这篇文章中,我用深入浅出socket选项行为中的4个选项来介绍send和recv的行为SO_RCVBUF SO_SNDBUF先明确一个概念:每个TCP socket在内核中都有一个发送缓冲区和一个接收缓冲区,TCP的全双工的工作模式以及TCP的滑动窗口便是依赖转载 2013-09-18 13:18:07 · 1087 阅读 · 0 评论 -
socks代理服务器协议的说明
socks代理里面,有socks4 socks4a socks5,也有叫sock4 sock4a sock5的,都是一回事。socks4 socks4a和socks5的tcp部分极其简单。这又出现一个怪现象了,网文中除了一个人说道udp比tcp复杂,其他的全都说udp简单,只说tcp部分,把udp都一笔带过了。而我就明显感到udp比tcp复杂很多。 sock转载 2014-11-17 09:39:41 · 1229 阅读 · 0 评论