VC++网络编程-Winsock的基本概念

CAsyncSocket和CSocket是网络编程常使用的两个类,他们是MFC类库中的成员,其中CSocket是CAsyncSocket的子类,而CAsyncSocket用面向对象的方法封装了Winsock。

Winsock的基本概念
    Socket在英文中是插座的意思。Socket环境下编程很像模拟电话,Internet的IP地址就是电话号码,要打电话就向系统中申请一个Socket,以后两台机器上的程序沟通都是通过这个Socket来进行的。

我们就Socket看成文件指针,只要向指针所指的文件读写数据,就可以实现双向通信。
利用Socket进行通信,两种方式:
1、面向连接的流方式。
两个通信应用程序之间先要建立一种连接链路,连接链路成功后,就可以数据的接受和发送,这种方式对应的就可是TCP协议。
2、无连接的数据报方式
把数据封装在信封了,通过网络寄送给对方,信在传送的过程中可能会出现残缺,可能后发送的信息会先收到,
就是UDP协议。
TCP通信可靠,对数据有校验和重发的机制,通常用来作数据文件的传输FTP/Telnet等
UDP取消重发校验机制,能够达到较高的通信效率,用于语音、图像、广播等传输。
在ISO的OSI网络七层协议中,Winsock主要负责的是控制数据的输入和输出,也就是传输层和网络层。
同时Winsock屏蔽了数据链路层和物理层,他的出想给Windows下的网络变成带来巨大变化。

Winsock对有可能阻塞的函数提供了两种处理方式——阻塞和非阻塞方式
阻塞方式下,发收的数据函数在被调用后一直要到传送完毕或出错才能返回,在阻塞期间,除了等待网络操作传送完成后,不能进行任何操作。
非阻塞方式下,函数被调用后立即 返回,当网络操作传送完成后,由Winsock给应用程序发送一个消息,通知操作完成,这时可以根据发送的消息传出的参数判断操作是否正常。
尽量使用非阻塞模式~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值