随笔分类 -  Socket网络编程

摘要:1. connect出错: (1) 若TCP客户端没有收到syn分节的响应,则返回ETIMEOUT错误;调用connect函数时,内核发送一个syn,若无响应则等待6s后再发送一个,若仍然无响应则等待24s后在发送一个,若总共等待75s后仍未收到响应则返回本错误; (2) 若对客户的syn响应是rs 阅读全文
posted @ 2018-05-22 15:02 大漠垂杨 阅读(802) 评论(0) 推荐(0) 编辑
摘要:转自:https://www.cnblogs.com/sunziying/p/6501045.html 建立连接 阻塞方式下,connect首先发送SYN请求道服务器,当客户端收到服务器返回的SYN的确认时,则connect返回.否则的话一直阻塞. 非阻塞方式,connect将启用TCP协议的三次握 阅读全文
posted @ 2018-05-22 14:27 大漠垂杨 阅读(975) 评论(0) 推荐(0) 编辑
摘要:#include #include #include #include #include int main(int argc, char *argv[]) { /* 服务器端套接字 */ int server_sockfd; /* 客户端套接字 */ int client_sockfd; int len; /* 服务器网络地址结构体 */ struct sockaddr... 阅读全文
posted @ 2017-12-22 10:29 大漠垂杨 阅读(340) 评论(0) 推荐(0) 编辑
摘要:100万并发连接服务器笔记之处理端口数量受限问题 第二个遇到的问题:端口数量受限 一般来说,单独对外提供请求的服务不用考虑端口数量问题,监听某一个端口即可。但是向提供代理服务器,就不得不考虑端口数量受限问题了。当前的1M并发连接测试,也需要在客户端突破6万可用端口的限制。 单机端口上限为65536 阅读全文
posted @ 2017-11-29 11:48 大漠垂杨 阅读(345) 评论(0) 推荐(0) 编辑
摘要:网友vmstat多次提出了这个问题:SO_REUSEADDR有什么用处和怎么使用。而且很多网友在编写网络程序时也会遇到这个问题。所以特意写了这么一篇文章,希望能够解答一些人的疑难。 其实这个问题在Richard Stevens的《Unix网络编程指南》卷一里有很详细的解答(中文版P166-168页) 阅读全文
posted @ 2017-11-27 15:27 大漠垂杨 阅读(787) 评论(0) 推荐(0) 编辑
摘要:实例分析1 将服务器端的listen函数backlog设置为2,用20个客户端与服务器建立连接,查看连接的建立情况。 服务器代码: client代码 实验结果 服务器端显示: 客户端显示: 结果分析: 同时建立连接的客户端进程共有20个,可是只有5个完成了连接的建立,其他15个没有成功。有趣的是,建 阅读全文
posted @ 2017-11-09 10:52 大漠垂杨 阅读(969) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.cnblogs.com/coder2012/archive/2013/03/31/2991785.html 设置套接字函数: 应用: 1.数据收发时限设置 2.修改收发缓冲区 3.广播设置 4.直接数据复制 为了提升系统性能,在发送或接受数据时,可以主动设置数据不经历由缓 阅读全文
posted @ 2017-11-08 16:13 大漠垂杨 阅读(1751) 评论(0) 推荐(0) 编辑
摘要:server端 client端 参考:http://www.cnblogs.com/skyfsm/p/6287787.html?utm_source=itdadao&utm_medium=referral http://blog.csdn.net/chenlycly/article/details/ 阅读全文
posted @ 2017-11-02 14:28 大漠垂杨 阅读(351) 评论(0) 推荐(0) 编辑
摘要:对于在基于 UNIX 的环境中的 TCP/IP 用户,下表列出了某些最常见的错误原因码 (errno)。它不是完整的错误列表。可以在文件 /usr/include/sys/errno.h 中找到 Errno。针对每一种操作系统给出了errno 号码。 对于 OS/2 环境中的 TCP/IP 用户,下 阅读全文
posted @ 2017-11-02 11:52 大漠垂杨 阅读(1751) 评论(0) 推荐(0) 编辑
摘要:解决办法 打开 sysctl.conf 文件,修改以下几个参数: net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_timestamps = 1 TIME_WAIT会默认等待2MSL时间后,才最终进入CLOSED状态;在 阅读全文
posted @ 2017-10-27 15:52 大漠垂杨 阅读(560) 评论(0) 推荐(0) 编辑
摘要:可调优的内核变量存在两种主要接口:sysctl命令和/proc文件系统,proc中与进程无关的所有信息都被移植到sysfs中。IPV4协议栈的sysctl参数主要是sysctl.net.core、sysctl.net.ipv4,对应的/proc文件系统是/proc/sys/net/ipv4和/pro 阅读全文
posted @ 2017-10-18 21:26 大漠垂杨 阅读(2554) 评论(0) 推荐(1) 编辑
摘要:转自:http://www.cnblogs.com/yuuyuu/p/5103744.html 一.基本概念 我们通俗一点讲: Level_triggered(水平触发):当被监控的文件描述符上有可读写事件发生时,epoll_wait()会通知处理程序去读写。如果这次没有把数据一次性全部读写完(如读 阅读全文
posted @ 2017-10-18 20:52 大漠垂杨 阅读(1737) 评论(0) 推荐(0) 编辑
摘要:转自:http://blog.chinaunix.net/uid-10106787-id-3172066.html 一般情况下,当TCP连接主动关闭时,会向对端发送一个FIN,对端会获得一个读事件,调用read时返回0,表示读到一个EOF,读结束。然而,在有的时候却不是这样的,接下来将讨论一下。 首 阅读全文
posted @ 2017-10-11 17:38 大漠垂杨 阅读(2014) 评论(0) 推荐(0) 编辑
摘要:在TCP服务端和客户端建立连接之后服务端和客户端会分别有两个独立的输入流和输出流,而且相互对应。服务端的输出流对应于客户端的输入流,服务端的输入流对应于客户端的输出流。这是在建立连接之后的状态。 当我们调用close()函数时,系统会同时把双方的输入流和输出流全部关闭,但是有时候我们仍需要在一方断开 阅读全文
posted @ 2017-09-22 14:54 大漠垂杨 阅读(863) 评论(0) 推荐(0) 编辑
摘要:转自:http://blog.csdn.net/chen495810242/article/details/42029825 winSock的一个bug:当closesocket多次错误使用时会导致问题 转自:http://blog.csdn.net/chen495810242/article/de 阅读全文
posted @ 2017-08-17 21:00 大漠垂杨 阅读(1933) 评论(0) 推荐(0) 编辑
摘要:Standard options: 基本选项参数 --help 显示此帮助信息|print this message --log[=FILE|yes|no] 记录测试并输出到config.err文件|log tests and output to FILE [config.err] --prefix=PREFIX ... 阅读全文
posted @ 2017-08-17 20:50 大漠垂杨 阅读(524) 评论(0) 推荐(0) 编辑
摘要:转自: 自己在做UDP传输时遇到的问题,接收端没设置缓存,结果总是丢包。 看到这篇文章设置了一下接收缓存就好 int nRecvBuf=32*1024;//设置为32K setsockopt(s,SOL_SOCKET,SO_RCVBUF,(const char*)&nRecvBuf,sizeof(i 阅读全文
posted @ 2017-08-17 20:48 大漠垂杨 阅读(1258) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示