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

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.xdnf.cn/news/18452.html

相关文章:

  • Zynq开发实践(fpga高频使用的两个场景)
  • Elasticsearch Rails 实战全指南(elasticsearch-rails / elasticsearch-model)
  • VLLM部署gpt-oss-20b踩坑记录
  • chrome driver在Mac上运行时提示安全问题怎么解决
  • STM32 - Embedded IDE - GCC - 重定向printf到串口
  • jmeter
  • [docker/大数据]Spark快速入门
  • DS 0 | 数据结构学习:前言
  • MySQL的事务
  • 24.解构赋值
  • 3 种无误的方式删除 Itel 手机上的短信
  • K8S - NetworkPolicy的使用
  • 【小白笔记】 MNN 移动端大模型部署
  • 【普通地质学】构造运动与地质构造
  • unbuntu 20.04 docker 部署wordpress
  • 一体化伺服电机在特种机器人(炉管爬行器)中的应用案例
  • LLM实践系列:利用LLM重构数据科学流程03- LLM驱动的数据探索与清洗
  • 微服务介绍及Nacos中间件
  • 算法 之 拓 扑 排 序
  • Pycharm SSH连接
  • Android15 AndroidV冻结和解冻的场景
  • 学习Linux嵌入式(正点原子imx课程)开发到底是在学什么
  • 【Linux | 网络】多路转接IO之select
  • Python 面向对象编程入门:从思想到属性操作
  • 图(Graph):关系网络的数学抽象
  • 3维模型导入到3Dmax中的修改色彩简单用法----第二讲
  • 零成本加速:EdgeOne免费套餐3分钟接入指南
  • MYSQL库及表的操作
  • 奈飞工厂:算法优化实战 —— 从推荐系统到内容分发
  • Python工程师向项目管理转型的深度分析与学习道路规划