UDP协议是面向无连接,不可靠的传输协议,编程流程如下;

服务器端:
1. socket(),返回一个文件描述符,用于通信
2. bind(); //得先完成结构体的填充sockaddr_in
3. recvfrom(), //接收数据
4. sendto(), //发送数据
5. close(sockfd);

客户端:
1. socket(), 返回一个文件描述符,用于通信
2. 填充结构体,(目的是告诉程序,数据要发送给谁)
3. sendto()
4. recvfrom()
5. close();

使用的API,大部分和TCP协议类似

ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,
struct sockaddr *src_addr, socklen_t *addrlen);
第5/6参数,明确接收哪个客户端发来的数据;

ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,
const struct sockaddr *dest_addr, socklen_t addrlen);
第5/6参数,明确数据要发送给谁;

转载于:https://www.cnblogs.com/huiji12321/p/11371404.html

step5 . day4 网络编程 基于UDP协议的网络编程流程及API相关推荐

  1. Sockey编程之基于 UDP 协议的 Socket 编程

    一.基于 UDP 协议的 Socket 编程 1.端口选择 已知端口:0~1023,为固定服务保留. 已注册的端口:1024~49151,供普通用户的普通用户进程或程序使用. 动态或私用端口: 491 ...

  2. step5 . day2 网络编程 基于TPC协议的网络编程流程及API

    基于TCP协议的网络编程流程 服务器端: 1) socket(),创建套接字文件,用于连接 2) bind(), 绑定,把socket()函数返回的文件描述符和IP.端口号进行绑定; 3) liste ...

  3. Java网络编程——基于UDP协议的聊天室

    UDP简述    UDP(User Datagram Protocol)协议是Internet 协议集支持的一个无连接的传输协议,中文名为用户数据报协议.它为应用程序提供了一种无需建立连接就可以发送封 ...

  4. 小成开发日记---利用Qt/C++实现基于Udp协议的网络聊天室(分服务端和客户端的开发【轻聊v1.0.1】)

    作者:小成Charles 原创作品 转载请标注原创文章地址:https://blog.csdn.net/weixin_42999453/article/details/112363393 一.引言 最 ...

  5. 网络编程: 基于UDP协议的socket

    udp是无链接的,启动服务之后可以直接接受消息,不需要提前建立链接 UDP协议的通信优势: 允许一个服务器同时和多个客户端通信, TCP不行 服务端 import socketsk = socket. ...

  6. step5 . day5 网络编程 基于UDP协议的多人网络在线聊天功能

    模拟在线群聊功能,使用多进程完成聊天内容的接受和服务器端的转发,demo代码记录参考 //client_chat_UDP code #include <stdio.h> #include ...

  7. step5 . day3 网络编程 基于TPC协议的网络编程Demo,类FTP功能

    1.客户端 //cilent code #include <stdio.h> #include <sys/types.h> #include <sys/socket.h& ...

  8. 套接字编程——基于UDP协议

    <UDP用到的大多数函数在上一片TCP中已讲解,这儿就不再重复了,只有接受和发送所用的函数不同> 函数 (1)接受--recvfrom() (2)发送--sendto() a. 参数 so ...

  9. 基于TCP协议的网络摄像头的设计与实现

    一.摘要 基于TCP协议的网络摄像头的设计大部分和博文"基于UDP协议的网络摄像头的设计与实现"相同,本篇博文采用的TCP协议栈为NicheStack协议栈(同理,可使用LWIP协 ...

最新文章

  1. centos6.5 架设Telnet服务
  2. Asp.net 点滴
  3. CentOS7 网络安装流程
  4. 前端代码是怎样智能生成的?
  5. spark读取csv转化为rdd(python+scala+java三种代码汇总)
  6. 获得变量的名称获得传入参数的参数类型与堆栈中的函数名获得变量的名称
  7. [NodeJs] 如果发现node_modules中有个模块代码有bug,你该怎么办?
  8. 基于智能卡的嵌入式网络加密安全系统设计
  9. 我的世界中国版服务器存档位置,我的世界中国版如何自己上传本地的mod和存档...
  10. singft 函数 matlab,(新)信号与系统MATLAB实验全.doc
  11. 流行于机器学习竞赛的Boosting,一文讲透足够了
  12. [JavaScript]如何安全地嵌入第三方js – FBML/caja/sandbox/ADsafe简介
  13. smartadmin_smartadmin 下载_smartadmin 官网
  14. 如何利用Django打造一款类似于链家二手房信息查询网!厉害吧!
  15. tarjan算法 java_最大强连通图算法 Tarjan算法 (图论)
  16. android adb驱动win7,win7 64位adb驱动怎么安装_win7安装abd驱动的方法图文步骤
  17. 小型超市管理系统.c
  18. Android中免Root实现Hook的Dexposed框架实现原理解析以及如何实现应用的热修复
  19. 【Transformer论文模型细致讲解】
  20. vim .bashrc编辑界面

热门文章

  1. delphi 到出execl2010 文件损坏_Win7系统出现explorer.exe损坏的图像的解决方法是什么?...
  2. 【算法】划分数 动态规划
  3. LVS(13)——DR模型准备工作及ip地址冲突问题
  4. hive(4)——元数据概述
  5. obfuscator-llvm Theos 集成配置
  6. 关于m_pMainWnd = dlg的错误
  7. ADO连接ACCESS数据库
  8. Redis Cluster Gossip 协议详解
  9. c++primer12.3文本查询程序的一些问题的感悟和错误剖析
  10. 空指针:从 0 到 NULL,再到 nullptr