`
jishublog
  • 浏览: 869417 次
文章分类
社区版块
存档分类
最新评论

UNIX网络编程----基本UDP套接字编程(八)

 
阅读更多

UNIX网络编程---基本UDP套接字编程

一、概述

UDP是无连接的不可靠的数据报协议,不同于TCP提供的面向连接的可靠字节流。使用UDP编写的一些常见的应用程序有:DNS、NFS和SNMP(简单网络管理协议)。

客户不于服务器建立连接,而是只管使用sendto给服务器发送数据报,其中必须制定目的地的地址作为参数。类似地,服务器不接受来自客户的连接,而是只管调用recvfrom函数,等待来自某个客户的数据到达。Recvfrom将与所接受的数据报一道返回客户的协议地址iyici服务器可以把响应发送刚给正确的客户。

二、recvfrom和sendto函数

#include<sys/socket.h>

Ssize_t recvfrom(int sockfd,void *buff,sieze_t nbytes,intflags,struct sockaddr *from,socklen_t *addrlen);

Ssize_t sendto(int sockfd,const void*buff,size_t nbytes,int flags,const struct sockaddr *to,socklen_t addrlen);

前三个参数和read、write函数的三个参数:描述符、指向读入或写出缓冲区的指针和读写字节数。

Recvfrom的最后两个参数类似于accept的最后两个参数:返回时其中套接字地址结构的内容告诉我们是谁发送了数据报(UDP情况下)或者是谁发起了链接(TCP情况下)。Sendto的最后两个参数类似于conect的最后两个参数:调用时其中套接字地址结构被我们填入数据报将发送(UDP情况下)或与之建立连接(TCP情况下)的协议地址。

写一个长度为0的数据报是可行的。

如果recvfrom的from参数是一个空指针,那么相应的长度参数也必须是一个空指针,表示我们并不关心数据发送者的协议地址。

Recvfrom和sendto都可以用于TCP,尽管通常没有理由这样做。

一般来说,大多数TCP服务器是并发的,而大多数UDP服务器是迭代的。

分享到:
评论

相关推荐

    UNIX网络编程 卷1:套接字联网API

    第8章 基本UDP套接字编程 第9章 基本SCTP套接字编程 第10章 SCTP客户/服务器程序例子 第11章 名字与地址转换 第三部分 高级套接字编程 第12章 IPv4与IPv6的互操作性 第13章 守护进程和inetd超级服务器 ...

    UNIX网络编程卷1:套接字联网API(第3版)part1 共2部分

    第8章 基本UDP套接字编程 第9章 基本SCTP套接字编程 第10章 SCTP客户/服务器程序例子 第11章 名字与地址转换 第三部分 第12章 IPv4与IPv6的互操作性 第13章 守护进程和inetd超级服务器 第14章 高级I/O函数 ...

    UNIX网络编程卷1套接字联网API.part1.rar

     本书是为那些希望能够通过套接字接口实现程序间的相互通信的人而编写的,旨在为网络编程的初学者以及专家提供指导。要建立高度分布式、网络化的应用程序和服务,就需要对套接字和其他关键的网络API有深入的理解。...

    UNIX网络编程卷1套接字联网API.part2.rar

     本书是为那些希望能够通过套接字接口实现程序间的相互通信的人而编写的,旨在为网络编程的初学者以及专家提供指导。要建立高度分布式、网络化的应用程序和服务,就需要对套接字和其他关键的网络API有深入的理解。...

    UNIX网络编程卷2进程间通信

     本书是为那些希望能够通过套接字接口实现程序间的相互通信的人而编写的,旨在为网络编程的初学者以及专家提供指导。要建立高度分布式、网络化的应用程序和服务,就需要对套接字和其他关键的网络API有深入的理解。...

    unix_socket_socket编程_Unix域套接字_udpclient_tunedaa_网络编程_源码.zip

    unix_socket_socket编程_Unix域套接字_udpclient_tunedaa_网络编程_源码.zip

    unix_socket_socket编程_Unix域套接字_udpclient_tunedaa_网络编程_源码.rar

    unix_socket_socket编程_Unix域套接字_udpclient_tunedaa_网络编程_源码.rar

    UNIX网络编程卷1:套接字联网API(第3版)part2

    UNIX网络编程卷1:套接字联网API(第3版),含TCP,UDP,SCTP,IPv6,Unix域协议,广播,多播,密钥管理

    UNIX网络编程卷1:套接字联网API(第3版)part1

    UNIX网络编程卷1:套接字联网API(第3版),含TCP,UDP,SCTP,IPv6,Unix域协议,广播,多播,密钥管理

    linux网络编程-宋敬彬-part1

    7.1 套接字编程基础知识 181 7.1.1 套接字地址结构 181 7.1.2 用户层和内核层交互过程 183 7.2 TCP网络编程流程 184 7.2.1 TCP网络编程架构 184 7.2.2 创建网络插口函数socket() 186 7.2.3 绑定一个地址...

    UNix 网络编程 卷2

    UNIX网络编程 卷2:进程间通信(英文版·第2版)》是一部UNIX网络编程的经典之作。进程间通信(IPC)几乎是所有Unix程序性能的关键,理解IPC也是理解如何开发不同主机间网络应用程序的必要条件。《UNIX网络编程 卷2:进程...

    UNIX 编程技术与实例分析

    第5章 UDP套接字 第三部分 Unix网络编程实用技术 第6章 并发服务器 第7章 名字和IP地址转换 第8章 同步及进程间通信 第9章 异常处理 第10章 创建实用套接字类库 第四部分 高级网络编程技术 第11章 守护...

    unix网络编程学习资料

    一本关于网络编程的书,TCP,UDP套接字编程

    网络编程课件 Socket编程

    套接字是一组用于编写网络程序的API 常见的套接字有: --Windows平台 WinSock --Unix/Linux socket 套接字类型: --stream socket 面向流的一种套接字。 --datagram socket 面向数据报的一种套接字。 --raw ...

    Linux网络编程 视频 教程

    UNIX域套接字编程注意点 22socket编程(十七) socketpair sendmsg/recvmsg UNIX域套接字传递描述符字 Linux网络编程之进程间通信篇 23进程间通信介绍(一) 进程同步与进程互斥 进程间通信目的 进程间通信...

    python socket网络编程步骤详解(socket套接字使用)

    一、套接字套接字是为特定网络协议(例如TCP/IP,ICMP/IP,UDP/IP等)套件对上的网络应用程序提供者提供当前可移植标准的对象。它们允许程序接受并进行连接,如发送和接受数据。为了建立通信通道,网络通信的每个...

    C++教程网《Linux网络编程》视频百度云地址

    UNIX域套接字编程注意点 22socket编程(十七) socketpair sendmsg/recvmsg UNIX域套接字传递描述符字 Linux网络编程之进程间通信篇 23进程间通信介绍(一) 进程同步与进程互斥 进程间通信目的 进程间通信...

    [免费]2018年C++教程网的linux网络编程视频百度云下载链接.rar

    UNIX域套接字编程注意点 22socket编程(十七) socketpair sendmsg/recvmsg UNIX域套接字传递描述符字 Linux网络编程之进程间通信篇 23进程间通信介绍(一) 进程同步与进程互斥 进程间通信目的 进程间通信...

Global site tag (gtag.js) - Google Analytics