您的位置:首页 > 理论基础 > 计算机网络

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

2012-02-27 21:23 274 查看
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地址和连接端口。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐