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

Linux-计算机网络.udp

      
1.收发函数:
  read()/write ()   ///通用文件读写,可以操作套接字。
    recv(,0) /send(,0)      ///TCP 常用套机字读写
    recvfrom()/sendto()   ///UDP 常用套接字读写


ssize_t recv(int sockfd, void *buf, size_t len,
             int flags);
功能:从指定的sockfd套接字中以flags方式获取长度
      为len字节的数据到指定的buff内存中。
参数:sockfd  
        如果服务器则是accept的返回值的新fd
        如果客户端则是socket的返回值旧fd
      buff 用来存储数据的本地内存,一般是数组或者
      动态内存。
      len 要获取的数据长度
      flags 获取数据的方式,0 表示阻塞接受。

返回值:成功 表示接受的数据长度,一般小于等于len
        失败  -1;


-------------------------------------------------------


练习:
   客户端向服务器传输一个文件 
   

2.粘包:
        因为tcp本身是面向字节流的,
        多次的发送数据,可能会一次接收 
        多次的数据会粘到一起 
        
    //怎么处理:
    1.加一些分割标记 
      1.txt\0#include<>
           \n
           \r\n
           
    2.指定发送消息的长度 
      
    3.自定义格式 
      struct msg
      {
      }; 
      
      //EDID 
      
      
总结:
  1.客户端 服务器 模型 
  2.网络 + 多进程 /多线程 
  3.网络 + 文件 

   
3.udp-c/s 模型 

client // 
  socket
  sendto  //发送消息 
  ...
  
  close

server:
  socket 
  bind 
  recvfrom() //接收消息   
  ...
  close 
        
        
       ssize_t send  (int sockfd, const void *buf, size_t len, int flags);
       ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,
                      const struct sockaddr *dest_addr, socklen_t addrlen);
       参数:
          dest_addr  //要发送到的目的地址 
          addrlen    //dest_addr的大小
          
          
       ssize_t recv    (int sockfd, void *buf, size_t len, int flags);
       ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,
                        struct sockaddr *src_addr, socklen_t *addrlen);
       accept //可以获得对端的地址信息
       
       参数:
         @src_addr   //源地址  
         @addrlen    //src_addr 大小---使用方式与accept中的addrlen使用方式一样

4.

相关文章:

  • SQL Server下载和安装细节
  • 【慕课网wiki项目学习笔记01】Spring Boot 项目搭建
  • 使用vite创建vue3项目
  • 消息队列与RocketMQ
  • linux离线安装miniconda环境
  • 如何将本地项目提交到 GitHub
  • 登录服务器后如何找到对应的drupal所在的文件夹
  • FPGA-DE2115开发板实现4位全加器、3-8译码器。
  • Ribbon实现原理
  • 清华DeepSeek深度探索与进阶指南
  • 扫描纸质文件转pdf---少页数+手机+电脑协作
  • 01. HarmonyOS应用开发实践与技术解析
  • 2025-3-3 二叉树的存储结构
  • Makefile
  • 【Java EE】JavaEE导读,探寻 JavaEE:解锁企业级开发的璀璨密码与进阶指南
  • 论文学习——The Hilti SLAM Challenge Dataset
  • iOS逆向工程概述与学习路线图
  • DeepSeek、Grok、ChatGPT4.5和Gemini四大AI模型深度解析:谁才是你的最佳助手
  • 704. 二分查找
  • 深入解析 I²C 与 SPI 协议:原理、时序及软件实现
  • 首批证券公司科创债来了!拟发行规模超160亿元
  • 洞天寻隐·学林纪丨玉洞桃源:仇英青绿山水画中的洞天与身体
  • 北约年度报告渲染所谓“中国核威胁”,国防部回应
  • 国家发改委:目前有的核电项目民间资本参股比例已经达到20%
  • 昆廷·斯金纳:作为“独立自主”的自由
  • 诺和诺德一季度减重版司美格鲁肽收入增83%,美国市场竞争激烈下调全年业绩预期