CSocket必须使用stream socket不能够使用数据报 socket
如果使用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的更多相关文章
- 网络协议之:socket协议详解之Socket和Stream Socket
目录 简介 Socket是什么 Stream Socket 使用socat创建一个TCP服务器 使用ss检查TCP连接 使用nc连接socket 总结 简介 不管是在普通的网络编程中还是在netty中 ...
- C#使用Socket实现一个socket服务器与多个socket客户端通信
在分布式调度系统中,如果要实现调度服务器与多台计算节点服务器之间通信,采用socket来实现是一种实现方式,当然我们也可以通过数据存储任务,子节点来完成任务,但是往往使用数据作为任务存储都需要定制开发 ...
- flash as3 socket安全服务网关(socket policy file server)
关键字: SecurityErrorEvent socket as3 flash有着自己的一套安全处理模式,在socket方面,我这样的菜鸟无法理解他的好处:一句话,不怀好意的人如果想用flash写一 ...
- python socket 编程之一:编写socket的基本步骤
一.socket 编写server的步骤: 1.第一步是创建socket对象.调用socket构造函数.如: socket = socket.socket( family, type ) family ...
- Windows socket之最简单的socket程序
原文:Windows socket之最简单的socket程序 最简单的服务器的socket程序流程如下(面向连接的TCP连接 ): 1. WSAStartup(); 初始化网络库的使用. 2. soc ...
- python 全栈开发,Day33(tcp协议和udp协议,互联网协议与osi模型,socket概念,套接字(socket)初使用)
先来回顾一下昨天的内容 网络编程开发架构 B/S C/S架构网卡 mac地址网段 ip地址 : 表示了一台电脑在网络中的位置 子网掩码 : ip和子网掩码按位与得到网段 网关ip : 内置在路由器中的 ...
- socket 中午吃的啥 socket 并发服务器 fork
http://www.cnblogs.com/thinksasa/archive/2013/02/26/2934206.html zh.wikipedia.org/wiki/網路插座 在作業系統中,通 ...
- 为什么有监听socket和连接socket,为什么产生两个socket
为什么有监听socket和连接socket,为什么产生两个socket 先看一半的socket建立连接的双方的过程: 客户端: socket()---->创建出 active_socket_fd ...
- 老雷socket编程之PHP利用socket扩展实现聊天服务
老雷socket编程之PHP利用socket扩展实现聊天服务 socket聊天服务原理 PHP有两个socket的扩展 sockets和streamssockets socket_create(AF_ ...
随机推荐
- 为Apache配置虚拟机Virtual Host
配置虚拟机最少需要修改两个文件,即httpd-vhosts.conf 和 hosts (记住修改任何配置前先备份哦,这才是个好习惯) 第一步,修改httpd-vhosts.conf文件, 文件路径 \ ...
- Poj(2195),最小费用流,SPFA
题目链接:http://poj.org/problem?id=2195 Going Home Time Limit: 1000MS Memory Limit: 65536K Total Submi ...
- 让VS自动生成我们自己的注释
1. 找到你VS的安装目录:C:\Program Files (x86)\Microsoft Visual Studio 11.0 2. 在VS安装路径下依次找到这些文件夹:\Common7\IDE\ ...
- JS中的call()和apply()方法和bind()
1.方法定义 call方法: 语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 说明: call ...
- Bootstrap——导航栏编写
<nav class="navbar navbar-default navbar-fixed-top" role="navigation"> ...
- java使用Cipher进行签名和验签
public static void main(String[] args) { try { String plainText = "duwenlei"; KeyPairGener ...
- STM32 NVIC
在stm32中是要配置nvic的.何为nvic,对于我这样的初学者来说,直观感受就是在设置为中断后 还需要配置 中断的优先级nvic就是搞这个的. 那么具体的需要配置些什么那? void NVIC_C ...
- CAGradientLayer
参考: CAShapeLayer和CAGradientLayer 一 简介 1,CAGradientLayer,处理颜色渐变: 2,CAGradientLayer的渐变色可以做隐式动画: 3,大部分情 ...
- TCP连接的状态详解以及故障排查
我们通过了解 TCP各个状态 ,可以排除和定位网络或系统故障时大有帮助. 一.TCP状态 LISTENING :侦听来自远方的TCP端口的连接请求 . 首先服务端需要打开一个 socket 进行监听, ...
- outlook经常无故崩溃解决办法
问题描述: Outlook 最近有点怪,有时无法启动有时又突然崩溃.原以为是远程访问服务出了问题,但即使在本地操作,Outlook 仍然极不稳定.怎么回事? 原因:这种现象,很可能是由 Office ...