码迷,mamicode.com
首页 > 其他好文 > 详细

CSocket必须使用stream socket不能够使用数据报 socket

时间:2015-02-06 12:44:59      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:

如果使用MFC socket类CSoket通讯,必须使用stream socket,不能够使用 SOCK_DGRAM 类型socket。原因如下:

1 stream socket和数据报socket的区别就是,

   前者是可靠传输,数据会被拆成多个数据包发送:

   (1) 收发两端的发送的数据包顺序要一样。

   (2)数据包还不能重复。

   (3)每个数据包没有界限。

   后者恰好相反。

2 CSocket通过CArchive来从socket中读写数据。主要原理是,创建一个和CSocket关联的CSocketFile

   对象,CArchive从CSocketFile对象中读写数据。CArchive读写数据是以二进制格式读写数据,其特征

   恰好和stream socket相一致。

补充:

标题来源于msdn文档Windows Sockets: Stream Sockets最后一句话,网址:https://msdn.microsoft.com/en-us/library/474e45z0.aspx。

具体说明,参考CArchive类和msdn文档中的文章Windows Sockets: Using Sockets with Archives

The CSocket Pragramming model标题下的第2条中的注意事项。

CSocket必须使用stream socket不能够使用数据报 socket

标签:

原文地址:http://www.cnblogs.com/criticalsection/p/4276613.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!