![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
忆常
这个世界唯一不会变化的就是变化!
展开
-
关于创建socket失败的问题
昨天在调试程序的时候发现每次调用socket函数总是失败,可令人奇怪的是这个模块之前运行一直是OK!拿到的错误码是10106,宏是WSAEPROVIDERNOTINIT,意思大概是“请求的服务没有被加载或者初始化”,网上搜索的结果都说是WSAStartup没有调用,明显这种说法是不正确的,因为WSAStartup没有调用或调用失败的话,返回的错误码应该是WSANOTINITIALISED,而且我确原创 2009-01-09 10:15:00 · 20329 阅读 · 0 评论 -
关闭TCP连接的学问
从TCP协议角度来看,一个已建立的TCP连接有两种关闭方式,一种是正常关闭,即四次挥手关闭连接;还有一种则是异常关闭,我们通常称之为连接重置(RESET)。 首先说一下正常关闭时四次挥手的状态变迁,关闭连接的主动方状态变迁是FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT,而关闭连接的被动方的状态变迁是CLOSE_WAIT->LAST_ACK->TIME_WAI原创 2011-07-11 23:41:34 · 8539 阅读 · 0 评论 -
socket 10106问题解决日记
很久没写博客了,这两天解决了一个创建套接字(SOCKET)失败,错误码为10106的问题。部分从事网络编程的朋友也遇到过类似问题,大多数都可以通过重装系统解决。这次我想研究一下10106产生的根本原因,给大家解决类似问题,提供另外一种思路。【环境】WIN7,64位系统【现象】CAD2006平台程序不能联网,其他程序没有问题【错误原因】创建SOCKET原创 2013-08-29 11:41:38 · 12661 阅读 · 0 评论 -
深入剖析TCP协议的send与recv
一、 滑动窗口的概念 TCP数据包的TCP头部有一个window字段,它主要是用来告诉对方自己能接收多大的数据(注意只有TCP包中的数据部分占用这个空间),这个字段在通信双方建立连接时协商确定,并且在通信过程中不断更新,故取名为滑动窗口。有了这个字段,数据发送方就知原创 2011-07-13 16:48:34 · 14242 阅读 · 2 评论