当前位置: 首页 > news >正文

Linux学习-网络编程2

1.tcp可能出现粘包

解决:要让消息之间有边界

1.结束标志        \r\n

2.固定长度

3.协议结构体

2.recv和send

recv

原型:ssize_t recv(int sockfd, void *buf, size_t len, int flags);
功能:从sockfd接收信息
参数:sockfd:要操作的socketbuf:存放数据的空间len:buf的大小flags:制定读取信息的操作标志    MSG_DONTWAIT
返回值:成功返回读取到的字节数失败返回-1

send

原型:ssize_t send(int sockfd, const void *buf, size_t len, int flags);
功能:发送信息到socket里面
参数:sockfd:要操作的socketbuf:存放数据的空间len:buf的大小flags:操作标志    MSG_DONTWAIT
返回值:成功返回读取到的字节数失败返回-1

udp编程

1.模型

c/s

udp 客户端    //主动
socket
sendto
...recvfrom
closeudp 服务器端    //被动
socket
bind
recvfrom
...
printf
sendtoclose

2.函数

sendto

原型:ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,const struct sockaddr *dest_addr, socklen_t addrlen);
功能:向socket中发送信息
参数:sockfd:要操作的socketbuf:存放数据的空间len:buf的大小flags:操作标志    MSG_DONTWAITdest_addr:要发送到的目的地址addrlen:地址大小
返回值:成功返回发送的字节数失败返回-1

recvfrom

原型:ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,struct sockaddr *src_addr, socklen_t *addrlen);
功能:从socket中接收信息
参数:sockfd:要操作的socketbuf:存放数据的空间len:buf的大小flags:制定读取信息的操作标志    MSG_DONTWAITsrc_addr:保存客户端的地址信息addrlen:值结果参数
返回值:成功返回读到的字节数失败返回-1

http://www.dtcms.com/a/344796.html

相关文章:

  • .java->.class->java 虚拟机中运行
  • 51.Seata-TCC模式
  • 前端函数防抖
  • Nginx + Keepalived 实现高可用负载均衡集群
  • 前端桌面端解决方案技术选型:全面指南
  • 深入理解强化学习的target network
  • 3.5MM防水耳机插座
  • 为什么访问HTTPS站点时,会发生SSL证书错误
  • JAVA基础代码示例
  • SpringBoot -- 集成Spring Security (二)
  • LightGBM时序预测详解:从原理到 PSO 参数优化
  • 如何理解面向过程和面向对象,举例说明一下?
  • [docker/大数据]Spark快速入门
  • 【实时Linux实战系列】实时系统中的预测性维护策略
  • 能源行业合同管理难点有哪些?企业该如何应对?
  • FIFO核心原理与机制
  • QGIS 绿色版修正
  • 基于vtkImageViewer2的MPR(二):改进
  • JavaScript 操作 DOM
  • 图论——Floyd算法
  • 四十一、【高级特性篇】API 文档驱动:OpenAPI/Swagger 一键导入测试用例
  • 上市公司能源消耗数据库
  • 【python】os.makedirs和with open
  • 密码管理中硬编码密码
  • (论文速读)并行自回归视觉生成
  • 硬件驱动---linux内核驱动 启动
  • 【LeetCode】21. 合并两个有序链表
  • 开发二手车小程序时,如何确保信息的真实性和可靠性?
  • Prometheus+Grafana监控redis
  • 【连接器专题】连接器接触界面的理解