社区
通信技术
帖子详情
用SOCK_DGRAM的socket传输数据,能不能保证数据的一致性?
renk
2000-08-11 02:44:00
UDP的头中有校验和字段,但好象是不一定要用的,那在winsocket编程中用socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP)建立socket来传输数据时,它是否使用校验和呢?或者是否可以在程序中控制呢?
...全文
143
3
打赏
收藏
用SOCK_DGRAM的socket传输数据,能不能保证数据的一致性?
UDP的头中有校验和字段,但好象是不一定要用的,那在winsocket编程中用socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP)建立socket来传输数据时,它是否使用校验和呢?或者是否可以在程序中控制呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nieyongxin
2000-08-11
打赏
举报
回复
udp本身是不可靠的,它只管向外发,而不管对方有没有收到,所以,你在另一端只管收就行了
你收到的数据可能和发送前的数据不一样,也可能完全收不到,用UDP的好处是占用资源少,
发送的效率高,但没有容错能力
renk
2000-08-11
打赏
举报
回复
我的意思是,当我用recv收到用UDP发来的数据的时候,我是否可以认这它是和发送前的数据是一样的呢?用TCP的话似乎可以不用考虑这个问题。
nieyongxin
2000-08-11
打赏
举报
回复
你能否把问题讲的详细一点?
基于java的局域网聊天系统-毕业设计.doc
基于java的局域网聊天系统 目录 1 引言 3 1.1课题要求及目标 3 1.2 开发目标 7 2系统总体设计(针对一个完整的题目) 7 2.1 用例图及用例描述 7 2.2系统结构 10 3. 系统详细设计与实现 11 3.1引言…………………………………………………………………………..11 3.2程序系统的结构…………………………………………………………….12 3.3类级说明…………………………………………………………………….13 3.4函数级说明…………………………………………………………………..2 4 总结 37 4.1 运行结果…………………………………………………………………..37 4.2 测试与分析………………………………………………………………46 5任务分配表 47 参考文献 48 1 引言 1.1课题要求及目标 1. 课题要求 软件名:网上聊天系统(分服务器端和客户端两部分) 功能: 使用Win
sock
实现网上聊天功能(实现时可在一台机器上调试运行)。用户可以通过客户 端连接到服务器端并进行网上聊天。当然,聊天时可以启动多个客户端。 编程语言:java 硬件平台 CPU:Pentium4以上 内存:128M以上 软件平台 操作系统:windows系列,mac系列,linux等 开发工具: Eclipse,JDK6 描述: (1)实现群聊和私聊; (2)实现文件的发送与接收; (3)实现截图功能; (4)实现用户列表的维护。 (5)实现字体的改变 2. 开发技术
Sock
et
的编程模型如图1所示。 图1
Sock
et
的编程模型 字节流套接字(Stream
Sock
et
) 是最常用的套接字类型,TCP/IP协议族中的 TCP 协议使用此类接口。字节流套接口提供面向连接的、无差错的、发送先后顺序一致的、 无记录边界和非重复的网络信息包传输。其模型如图2所示。 数据报套接字 (Datag
ram
Sock
et
) TCP/IP协议族中的UDP协议使用此类接口,它是无连接的服务,它以独立的信 息包进行网络传输,信息包最大长度为32KB,传输不保证顺序性、可靠性和无重复性, 它通常用于单个报文传输或可靠性不重要的场合。数据报套接口的一个重要特点是它保 留了记录边界。其模型如图3所示。 原始数据报套接字(Raw
Sock
et
) 提供对网络下层通讯协议(如IP协议)的直接访问,它一般不是提供给普通用户 的,主要用于开发新的协议或用于提取协议较隐蔽的功能。 图2 面向连接的
SOCK
ET
编程模型 图3 面向非连接的
SOCK
ET
编程模型 Windows
Sock
et
s规范中定义了一个新的数据类型
SOCK
ET
,这一类型的定义对于将来Windows
Sock
et
s规范的升级是必要的。这一类型的定义保证了应用程序向Win32 环境的可移植性。因为这一类型会自动地从16位升级到32位。 3. 程序开发环境和开发语言 创建套接字
sock
et
() 应用程序在使用套接字前,首先必须拥有一个套接字,系统调用
sock
et
()向应用程序提 供创建套接字的手段,其调用格式如下:
SOCK
ET
sock
et
(int af, int type, int protocol); 该调用要接收三个参数:af、type、protocol。参数af指定通信发生的区域,UNIX系统 支持的地址族有:AF_UNIX、AF_INET、AF_NS等,而DOS、WINDOWS中仅支持AF_INET,它 是网际网区域。因此,地址族与协议族相同。 参数type 描述要建立的套接字的类型。若取
SOCK
_STREAM表示要创建的套接字是流套接字,取
SOCK
_
DG
RAM
创建的是数据报套接字,取
SOCK
_RAW表示创建原始套接字。 参数protocol说明该套接字使用的特定协议,如果调用者不希望特别指定使用的协议 ,则置为0,使用默认的连接模式。 若套接字创建成功则该函数返回所创建的套接字句柄
SOCK
ET
,否则产生INVALID_SOC KET错误。 指定本地地址 bind() 当一个套接字用
sock
et
()创建后,存在一个名字空间(地址族),但它没有被命名。bind( )将套接字地址(包括本地主机地址和本地端口地址)与所创建的套接字号联系起来,即 将名字赋予套接字,以指定本地半相关。其调用格式如下: int bind(
SOCK
ET
s, const struct
sock
addr* name, int namelen); 参数s是由
sock
et
()调用返回的并且未作连接的套接字描述符(套接字号)。 参数name 是赋给套接字s的本地地址,它由struct
sock
addr结构表示,namelen表明了name的长度。 如果没有错误发生,bind()返回0。否则返回
使用
SOCK
_
DG
RAM
类型的
sock
et
实现的ping程序
SOCK
_
DG
RAM
类型的
sock
et
常用于UDP通信,本文将尝试把这种
sock
et
用于ICMP协议,并完成一个简单的ping程序。使用ping去测试某个主机是否可用可能是一件很平常的事,尽管ping非常普通,但是编写一个实现ping功能的程序却并不是那么简单,因为ping使用的ICMP协议并不是一个应用层协议,本文简要介绍ICMP协议,并给出一个使用普通的常用于UDP通信的
sock
et
实现ping的实例,本文将提供完整的源程序;阅读本文需要熟悉
sock
et
编程,对初学者而言,本文有一定的难度。
SOCK
_STREAM与
SOCK
_
DG
RAM
套接字
一、流格式套接字(
SOCK
_STREAM) 流格式套接字(Stream
Sock
et
s)也叫“面向连接的套接字”,在代码中使用
SOCK
_STREAM 表示。
SOCK
_STREAM 是一种可靠的、双向的通信数据流,数据可以准确无误地到达另一台计算机,如果损坏或丢失,可以重新发送。 流格式套接字有自己的纠错机制,在此我们就不讨论了。
SOCK
_STREAM 有以下几个特征: 数据在传输过程中不会消失; 数据是按照顺序传输的; 数据的发送和接收不是同步的(有的教程也称“不存在数据边界”)。 可以将 S
SOCK
_
DG
RAM
(数据报套接字)与
SOCK
_STREAM(流套接口)的区别
一、
SOCK
_
DG
RAM
(数据报套接字)特性: 1、分组在发送后,可能无序地到达接收端 2、分组可能丢失。如果发生丢失,不会采取任何补救的措施,而且接受端也不必知道有分租丢失。 3、数据报分组有尺寸大小的限制,如果超出限制,在某些路由器和节点上就无法传送。 4、分组是在不建立连接的情况下被发送到远程进程的。 二、
SOCK
_STREAM (流套接口)特性: 1、不保留任何消息的边界:举一...
嵌入式Linux网络编程,网络基础,套接字
sock
et
(
SOCK
_STREAM、
SOCK
_
DG
RAM
、
SOCK
_RAW),IP地址,端口号,字节序,字节序转换函数,IP地址的转换
文章目录1,
sock
et
1.1,
sock
et
的类型(
SOCK
_STREAM、
SOCK
_
DG
RAM
、
SOCK
_RAW)1.2,
sock
et
的位置2,IP地址2.1,特殊IP地址:3,端口号4,字节序(大端序、小端序)4.1,字节序(网络字节序(NBO和主机字节序HBO)4.2,字节序转换函数htonl()/htons()、ntohl()/ntohs()5,IP地址的转换 inet_aton()、in...
通信技术
4,356
社区成员
28,926
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章