摘要:libevent是一个事件触发的网络库,支持Linux, BSD, Mac OS X, Solaris 和Windows。如果你将要开发的应用程序需要支持多平台,那么建议你采用这个库,即使你的应用程序只需要支持一个平台,选择libevent也是有好处的,因为它可以根据编译/运行环境切换底层的事件驱动机制,这既能充分发挥系统的性能,又增加了软件的可移植性。它封装并且隔离了事件驱动的底层机制,除了一般的文件描述符读写操作外,它还提供有读写超时、定时器和信号回调,另外,它还允许为事件设定不同的优先级,当前版本(1.3)的libevent还提供dns和http协议的异步封装,这一切都让这个库尤其适合于
阅读全文
摘要:然后是进行数据的传输,发送数据send:建立连接后,服务器端的sockConn与客户端的sockClient就连接起来并且可以互相传输数据了,int send(SOCKET s, //连接socket,非监听socketconst char FAR *buf, //要发送数据buf的地址int len,//buf的长度int flags//一般设置为0即可。);接收数据使用recv函数:int recv(SOCKET s,char FAR *buf, //要发送数据buf的地址。int len, //要接收数据buf的长度int flags //一般设置为0即可。);使用closesocket
阅读全文
摘要:要进行网络通信编程,就要用到socket(套接字)。套接字代表一个通信端口,有地址,有端口号,可连接(按类型),可收,可发。要进行socket编程,要为工程导入库文件,添加头文件,并在程序里加载套接字库。#include <winsock2.h>#pragma comment(lib, "ws2_32.lib") //2.0版本#include <winsock.h>#pragma comment(lib, "wsock32.lib") //1.0版本winsock是Windows平台下的网络套接字(Socket)接口规范。它从U
阅读全文
摘要:一、TCP/IP 体系结构与特点 1、TCP/IP体系结构 TCP/IP协议实际上就是在物理网上的一组完整的网络协议。其中TCP是提供传输层服务,而IP则是提供网络层服务。TCP/IP包括以下协议: IP: 网间协议(Internet Protocol) 负责主机间数据的路由和网络上数据的存储。同时为ICMP,TCP,UDP提供分组发送服务。用户进程通常不需要涉及这一层。 ARP: 地址解析协议(Address Resolution Protocol) 此协议将网络地址映射到硬件地址。 RARP: 反向地址解析协议(Reverse Address Resolution Pro...
阅读全文
摘要:◆ 无符号单字节 byte,数据上表示是0x10 ,2位。◆ 多字节基本类型,涉及到字节序little-endian和big-endian问题。(0x 01 02 0A或 0x 0A 02 01) 主机字节序:由CPU确定多字节类型数据在内存中的存放顺序,我们用的IntelCPU是little-endian。通常这是机器内部事物,但如果涉及到网络通信就不是了。 JAVA字节序:JAVA虚拟机中的多字节类型数据在虚拟机中的存放顺序。JAVA虚拟机存储的字节流是big-endian。 网络字节序:网络传送的数据按Internet标准是big-endian解析的。和JAVA虚拟机(注意是机器不...
阅读全文