计算机--windows编程
king
******
展开
-
Socket send函数和recv函数详解以及利用select()函数来进行指定时间的阻塞【转】
<br />int send( SOCKET s, const char FAR *buf, int len, int flags ); <br />不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。<br />客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。<br />该函数的第一个参数指定发送端套接字描述符;<br />第二个参数指明一个存放应用程序要发送数据的缓冲区;<br />第三个参数指明转载 2010-12-23 13:41:00 · 8462 阅读 · 1 评论 -
详谈高性能UDP服务器的开发[转]
详谈高性能UDP服务器的开发<br /><br />上一篇文章我详细介绍了如何开发一款高性能的TCP服务器的网络传输层.本章我将谈谈如何开发一个高性能的UDP服务器的网络层.UDP服务器的网络层开发相对与TCP服务器来说要容易和简单的多,UDP服务器的大致流程为创建一个socket然后将其绑定到完成端口上并投递一定数量的recv操作.当有数据到来时从完成队列中取出数据发送到接收队列中即可。<br /> 测试结果如下:<br /> WindowsXP Professional,转载 2010-12-23 22:12:00 · 6709 阅读 · 0 评论 -
关于SOCKET的阻塞非阻塞recv和send
<br />对于recv和send函数的返回完成,实际上并不是将缓冲区数据成功送入网络链路,而只是成功发送到系统缓冲区或者是系统缓冲区有数据了!这个系统缓冲区应该是驱动里分配的缓冲区,NTFS默认大小8k,一般WINDOWS 4K。<br />在发包时候,因为TCP提供的是流服务,导致WINSOCK接口会根据缓冲区和数据包的实际情况自由的对数据包进行组合和分割发送,也就是当客户端连续多次发送包时(<100ms),多个数据包可能会组合在一起进行了发送,也就是出现了"粘连"情况,这样客户一次收数据时原创 2010-12-24 22:11:00 · 2019 阅读 · 1 评论 -
UDP服务器的设计[转]
<br />使用UDP的一些蕴含对于设计和实现服务器会产生影响。通常,客户端的设计和实现比服务器端的要容易一些,这就是我们为什么要讨论服务器的设计,而不是讨论客户端的设计的原因。典型的服务器与操作系统进行交互作用,而且大多数需要同时处理多个客户。<br /> 通常一个客户启动后直接与单个服务器通信,然后就结束了。而对于服务器来说,它启动后处于休眠状态,等待客户请求的到来。对于UDP来说,当客户数据报到达时,服务器苏醒过来,数据报中可能包含来自客户的某种形式的请求消息。<br />原创 2010-12-24 20:24:00 · 4458 阅读 · 0 评论 -
exe、dll的进入点,以及main、winmain、dllmain的关系
exe、dll的进入点,以及main、winmain、dllmain的关系静态链接的情况不考虑,因为这种情况就是把所有代码合并到exe中,不需要进入点。进入点就是系统在加载一个可执行代码块(主要是exe和dll)到内存的时候,系统将要调用的起始代码的位置。加载分为启动时加载和运行时加载,这两种说法主要是针对dll的,因为exe加载必然会创建一个新的进程,所以exe加载都是启动时转载 2011-11-30 14:20:44 · 3350 阅读 · 0 评论 -
windows第一个窗口程序转自windows程序设计王艳平老师编著
转目录: 1.窗口程序 2.分析 注册窗口类别 建立窗口 显示窗口 消息循环 窗口消息处理程序 3.注意事项 窗口程序:#include LRESULT CALLBACK WndProc (HWND, UINT, WP转载 2016-01-18 00:00:23 · 1237 阅读 · 0 评论