Visual c++网络通信编程笔记

 

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地址和连接端口。
  

你可能感兴趣的:(Visual c++网络通信编程笔记)