1 . winsock有两个版本是winsock1.1和winsock2.0
2. CAsyncSocket和CSocket是MFC类库中的两个类,CAsyncSocket是CSocket的父类。
3. winsock属于传输层也网络层
4. 学会使用这一技巧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;
5. SOCKET accept( SOCKET s, struct sockaddr FAR *addr, int FAR *addrlen );
参数说明:s:监听的套接字描述符。
addr:指向结构体sockaddr的指针。
addrlen:addr参数指向的内存空间的长度。
accept()在接收到连接请求后,会为这个连接建立一个新的Socket来于对方通信,并把它作为返回值。
新建的Socket于原来的Socket有相同的特性,包括端口号。原来的Socket被释放,用于继续等待其他的连接
请求。而新生成的Socket才是与客户端进行通信的实际Socket。所以一般讲参数中的SOCKET称作“监听”Socket
,它只负责接受连接,而不负责通话;而对于accept函数返回的SOCKET,把它称作“会话”Socket,它只负责与客户端通话。
参数中的addr和addrlen 用来返回客户机的sockaddr_in结构体,通过addr可得到客户机的IP地址和连接端口。