Windows Socket是基于伯克利的Unix Socket的。微软的MFC提供了两种类来支持Socket编程。CSocket类为网络编程提供了高级别抽象。一个socket是有一种类型的并且与某个process相结合在一起。两类socket都是双向的:可以同时在两个方向进行数据上的交互。 两类socket是可用的的: Stream sockets:可以提供数据流而且不需要记录边界——字节流。流的方式可以保证传输并且顺序正确。 Datagram sockets:可以提供面向记录的数据流,但是该流无法保证传输并且是无序的。
Note 在更加通用的tcp/ip协议下,流是字节流。Windows的socket对低层的协议进行了抽象 。
Socket 数据类型 每一个MFC Socket对象都包含了一指针,该指针指向了Windows的Socket对象。该指针的数据类型是SOCKET。
struct sockaddr_in { short sin_family; u_short sin_port; struct in_addr sin_addr; char sin_zero[8]; };
struct in_addr { union { struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b; struct { u_short s_w1,s_w2; } S_un_w; u_long S_addr; } S_un;
u_short htons( u_short hostshort)将主机上的u_short类型变量转化为tcp/ip网络的字节顺序
. 
|