网络通信
niitlcj
认真第一,聪明第二!
展开
-
对CRITICAL_SECTION理解的总结
很多人对CRITICAL_SECTION的理解是错误的,认为CRITICAL_SECTION是锁定了资源,其实,CRITICAL_SECTION是不能够“锁定”资源的,它能够完成的功能,是同步不同线程的代码段。简单说,当一个线程执行了EnterCritialSection之后,c原创 2011-09-03 16:23:37 · 492 阅读 · 0 评论 -
boost:asio的同步方式和异步方式
http://blog.csdn.net/byrsongqq/article/details/6253435 Boost.Asio是一个跨平台的网络及底层IO的C++编程库,它使用现代C++手法实现了统一的异步调用模型。头文件#include 名空间using namespace boost::asio;ASIO库能够使用TCP、UDP、ICMP、串口来发送/接收数据,转载 2012-03-09 10:23:43 · 4370 阅读 · 0 评论 -
完成端口使用中的注意事项
完成端口使用中的注意事项 1. Socket的通信缓冲区设置成多大合适? 在x86的体系中,内存页面是以4KB为单位来锁定的,也就是说,就算是你投递WSARecv()的时候只用了1KB大小的缓冲区,系统还是得给你分4KB的内存。为了避免这种浪费,最好是把发送和接收数据的缓冲区直接设置成4KB的倍数。 2. 关于完成端口通知的次序问题转载 2012-08-24 11:58:10 · 1636 阅读 · 0 评论 -
[转]linux epoll模型
[转]linux epoll模型转载自:http://www.cppblog.com/Khan/archive/2008/04/02/46013.htmlhttp://www.xmailserver.org/linux-patches/nio-improve.html Linux I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。Linux转载 2012-10-27 23:20:00 · 701 阅读 · 0 评论 -
什么是重叠操作
也叫异步操作,若调用的函数立即返回则此操作就叫重叠操作。 背景:1.在串口通信时,使用ReadFile和WriteFile时,既可以同步操作也可以执行重叠操作。在异步操作时要用到OVERLAPPED结构,此结构中包含通知事件的句柄。 在使用CreateFile时就可指定是用同步方式还是异步方式,如: hCom = CreateFile( "COM1", GENERIC_转载 2012-11-16 10:41:16 · 4494 阅读 · 0 评论 -
谈epoll与高性能
今天偶然看到两篇关于讨论epoll与高性能问题的文章,文章均颇为争议,下面是两篇文章和讨论的地址: http://guanzhongdaoke-gmail-com.iteye.com/blog/189005 http://bbs.linuxtone.org/thread-3164-1-1.html 针对第一篇文章里面,作者提到:“需要注意的是,如果仅仅的采用epo转载 2012-11-18 09:01:19 · 1736 阅读 · 0 评论 -
LINUX socket 在connect的时候发生 Operation now in progress 错误
解决方法: unsigned long ul = 1; ioctl( nSocket, FIONBIO, &ul ); //设置为非阻塞模式 放到connect()后面.原创 2013-01-22 14:37:27 · 7876 阅读 · 1 评论 -
socket中read、write、send、recv函数的比较
建立好了TCP连接之后,我们就可以把得到的套接字当做文件描述符来使用,由此,想到了网络程序里面的基本的读写函数read和write函数。Write函数 Ssize_t write(int fd,const void *buf,size_t nbytes); Write函数将buf中的nbytes字节内容写入到文件描述符中,成功返回写的字节数,失败返回-1.并设置errno变转载 2013-02-03 11:45:31 · 1123 阅读 · 0 评论 -
修改tcp内核参数:somaxconn
修改somaxconn该内核参数默认值一般是128,对于负载很大的服务程序来说大大的不够。一般会将它修改为2048或者更大。echo 2048 > /proc/sys/net/core/somaxconn 但是这样系统重启后保存不了在/etc/sysctl.conf中添加如下net.core.somaxconn = 2048然后在终端中执行sysctl -p转载 2013-06-25 12:02:24 · 17590 阅读 · 0 评论