从Socket接收数据报:recvfrom

从一个UDPsocket中接收数据通过recvfrom函数来获得通过代替者recv函数:

ssize_t recvfrom(int socketDescriptor,void* buffer,size_t bufferLength,int flags,struct sockaddr* address,socklen_t* addressLength);

和recv函数类型,这recvfrom函数也是一个阻塞函数。如果没有数据从给定的socket被接收,它将放着调用进程到这阻塞状态直到数据被准备好。这recvfrom汗需要如下的参数被提供为了接收一个阻塞到来的连接:

Socket描述符指定socket实例,应用程序想要接收数据的socket实例。

Buffer 指针是从socket接收数据的内存地址。

Bufferlength:指定了这buffer的长度。这recv函数经仅仅填充这buffer直到这长度和返回。

Flags:指定了额外的接收。

Address指针提供了一个地址结构来保存着客户端发生包的端口地址。如果这个信息不被需要由应用程序,它被设置为NULL。

Address 长度指针提供了要填充的地址的内存空间。如果信息不被需要,它被设置为NULL。

如果这recvfrom函数是成功的,它返回从socket接收的字节数目。否则,它返回-1和被设置为恰当错误全局变量的errno。

发送数据报给Socket:sendto

像这recvfrom函数,发送数据到一个UDP socket通过和sendto函数代替send函数被获得。

ssize_t sendto(int soketDescriptor,const void* buffer,size_t bufferSize,int flags,const struct sockaddr* address,socklen_t addressLength);

像这send函数一样,这sendto函数也是阻塞函数。如果这socket是繁忙的发送数据,它将放这调用进程到阻塞状态直到socket准备传送这数据。这sendto函数需要接下来参数来提供为了接收一个pending状态的到来的俩件:

Socket 描述符制动想要发送数据到的sockt实例。

buffer指针指向要发送数据的内存地址。

buffer长度指定了这buffer的长度。

Flags指定发送的额外标记。

Address指定了目标服务器的端口地址。

address是这端口地址的长度。

如果这发送操作是成功的,这发送函数将返回传送的字节数;否则,它将返回-1和被设定恰当错误的全局变量errno。

Socket UDP无连接通信相关推荐

  1. android udp定时发送,Android Socket基于UDP协议通信

    首先我们要知道UDP通信协议是Socket通信的一种实现方式,Socket通信一般有两种通信方式:基于TCP协议.基于UDP协议.这两者的差别和优缺点就不说了,这里主要讲一下基于UDP协议的实现. 基 ...

  2. asp.core api 通过socket和服务器通信发送udp_python socket之TCP/UDP

    #coding=utf-8 # socket #网络中进程之间通信:网络层的"ip地址"可以唯一标识网络中的主机,而传输层的"协议+端口"可以唯一标识主机中的应 ...

  3. udp协议服务器客户端流程图,UDP 协议通信服务器端客户端.doc

    UDP 协议通信服务器端客户端 UDP 协议进行通信 --服务器端 UDP程序实例的基本使用情况和使用方法 这个系统由服务器程序udps和客户及程序udpc两个程序组成,如果从客户机出入一个特定命令, ...

  4. 基于Linux用C语言实现TCP半双工通信和UDP半双工通信

    文章目录 TCP协议/UDP协议介绍 三种通信方式 实现TCP半双工通信 所用到的结构体与函数 源代码 运行结果 实现UDP半双工通信 源代码 运行结果 参考文章 TCP协议/UDP协议介绍 TCP/ ...

  5. 【QT网络编程】实现UDP协议通信

    文章目录 概要:本期主要讲解QT中对UDP协议通信的实现. 一.UDP协议通信 二.Qt中UDP协议的处理 1.QUdpSocket 三.Qt实现UDP通信 1.客户端 2.服务器端 结尾 概要:本期 ...

  6. Linux下C语言UDP协议通信实践

    UDP和TCP协议一样,都是传输层协议.是无连接的,不安全的,报式传输层协议,通信过程默认也是阻塞的.其通信特点主要如下: (1)不需要建立连接 ,所以不需要进行 connect () 操作 (2)每 ...

  7. Python网络编程(1.利用socket(udp)+网络调试助手,发送数据)

    1.socket(简称 套接字)  是进制间通信的一种方式,它与其他进程间通信的一个主要不同是: 它能实现不同主机间的进程间通信,我们网络上各种各样的服务器大多数都是基于Socket 来完成通信的 2 ...

  8. socket补充:通信循环、链接循环、远程操作及黏包现象

    socket补充:通信循环.链接循环.远程操作及黏包现象 socket通信循环 server端: import socketphone = socket.socket(socket.AF_INET,s ...

  9. Python多人聊天室-基于socket UDP协议

    简介 使用Python编写的基于socket UDP通信的多功能即时聊天室,包含Tkinter编写的图形化聊天界面,功能包括有账号注册和登录,登录成功后可以查看在线用户,并和聊天室内的其他在线用户聊天 ...

最新文章

  1. android can为啥能发收不到数据_拼多多登录时手机收不到短信验证码怎么办
  2. redisson集成spring-session和shiro实现分布式session
  3. 达内软件测试证书是什么证书,达内软件测试培训让我拥有了实际工作经验
  4. oracle 序列的概念与使用步骤
  5. IEnumerable和IEnumerator详解
  6. 阿里开源深度学习框架XDL,面向高维稀疏数据,支持千亿参数训练规模
  7. insert into select语句锁表故障
  8. 【廖雪峰官方网站/Java教程】多线程(3)
  9. java 抽象类 模板_Java学习day21-抽象类(abstract class)和模板设计模式(TemplateMethod)...
  10. 激光雷达lidar标定
  11. 澄清server push/websocket/sse的一些概念
  12. iOS开发常用网址(最全)
  13. 网络编程——Java Email
  14. uniapp(APP)打开高德导航
  15. ASP.NET——使用FileUpLoad服务器控件实现文件上传
  16. c# 问题 vs2017 c# 划前半大括号,下半大扣号不会显示
  17. MQTT keepalive和reconnect
  18. 黑马程序员--java基础--集合(三)
  19. 《运营力——微信公众号 设计 策划 客服 管理 一册通》一一1.2 团队岗位介绍...
  20. C#测试网络连接测试

热门文章

  1. xss权限维持(小技巧)
  2. OpenGL之渲染大小球自转和公转的效果
  3. 2018/Province_Java_C/1/哪天返回
  4. 信息学奥赛一本通(C++)在线评测系统——基础(三)数据结构 —— 1339:【例3-4】求后序遍历
  5. 关于invSqrt( )函数
  6. 【Qt】数据库实战(一)
  7. 【Linux网络编程】原始套接字能干什么?
  8. ubantu 16.04 mysql_Ubuntu 16.04下安装MySQL
  9. iview tooltip自动消失_惠州广日自动人行道价格大概多少
  10. java 自定义消息_Vc中自定义消息及其触发使用