UDP+TCP

news2024/11/24 14:32:37

一、UDP协议

        1.recvfrom:recvform(int  sockfd,void *buf,size_t len,int flags,struct  sockaddr         *src_addr,socklen_t *addrlen);

        参数:socket的fd;   保存数据的空间地址 ;  空间大小; 

         默认接收方式(默认阻塞)MSG_DONTWAIT不阻塞方式     没有东西就等待

        用来保存发送方的地址信息;表示发送方发送实际的地址信息大小;

        (如果不关系发送方信息,则后两个参数可以写为NULL)

        成功返回接收到的字节数      失败返回-1

        1)inet_ntoa()将网络的字节序变成字符串类型

        2)ntohs()将网络的端口转换成主机号

        3)当socket创建后没有地址绑定,bind就是绑定地址

        2.bind:int  bind(int sockfd,const struct  sockaddr  *addr,socklen_t   addrlen);

           功能:如果在服务端调用,则表示将参数1相关的文件描述符与参数2指定的接口地址关联

                      用于从该接口接收数据,若在客户端,则表示将数据从参数1所在的描述符中取出并

                      从参数2所在接口设备发送出去(一般客户端可以省略)

           参数:sockfd   通过socket函数创建的文件描述符

                      套接字 id  my_addr  是物理接口的结构体指针

                客户端可以绑定地址,但一般不会绑定

                如果服务器没有绑定地址,那么客户端会找不到

二、TCP

1.客户端过程:

        1)建立连接:socket------bind(可选)------connect(发起连接)

        connect:int connect(int sockfd,const struct  sockaddr  *addr,socklen_t   addrlen)

        参数:sockfd  本地创建的套接字

                   addr  远程目标主机的地址信息

                   addrlen  地址信息的长度

        成功返回0    失败返回-1

        2)通信过程:read-----write------close

2.服务器过程:

        1)建立连接:socket------bind------listen------accept

        2)通信过程:read-----write------close

3.TCP连接建立

        1)TCP三次握手(建立连接)

        2)TCP四次握手(断开链接)

4.listen :int  listen(int  sockfd,int   backlog)反应监听那个套接字并且建立成功之后返回新的套接字

        参数:当前套接字        同时监听的个数

        成功返回新的套接字    失败返回-1

        listen会标记一下被动的socket(这个socket被用来接收到来的接受请求)

        有两个socket:一是监听的socket,二是处理建立连接的socket

     

      

         

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2063884.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【蓝桥杯集训100题】scratch游泳时长 蓝桥杯scratch比赛专项预测编程题 集训模拟练习题第27题

目录 scratch游泳时长 一、题目要求 编程实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 1、思路分析 2、详细过程 四、程序编写 五、考点分析 六、推荐资料 1、入门基础 2、蓝桥杯比赛 3、考级资料 4、视频课程 5、python资料 scratc…

5 分钟 Stable Diffusion 本地安装指南

一、Stable Diffusion 简介 Stable Diffusion 是一款非常强大的基于深度学习的 AI 图像生成技术。它由众多研究团队和开发者共同努力而成,其中包括德国慕尼黑大学和总部位于纽约的 RunwayML 公司的国际研究团队。 Stable Diffusion 的工作原理基于扩散模型。简单来…

TCP和UDP编程的学习

UDP编程特点:c/s模型 不可靠 ; 无链接 ;数据报形式(效率高); TCP编程特点: 面向链接; 可靠传输;(保证数据准确可靠); 面向字节流&a…

ES6解构赋值详解;全面掌握:JavaScript解构赋值的终极指南

目录 全面掌握:JavaScript解构赋值的终极指南 一、数组解构赋值 1、基本用法 2、跳过元素 3、剩余元素 4、默认值 二、对象解构赋值 1、基本用法 2、变量重命名 3、默认值 4、嵌套解构 三、复杂的嵌套结构解构 四、函数参数解构赋值 1、对象解构作为函…

wordrpess心得

基本心得 多语言切换方式&#xff1a; 使用en.xxxx和jp.xxx多域名实现&#xff0c;配合宝塔面板管理 举例&#xff1a;切换按钮 <div class"language-switcher"><a class"language-button" href"https://xxx">JA</a> <a c…

【C++ Primer Plus习题】2.2

问题: 解答: #include <iostream> using namespace std;#define LONG_TO_MA 220int main() {double distance 0;cout << "请输入距离(单位为long):";while (true){cin >> distance;if (cin.fail()){cout << "输入有误!请输入数字:&qu…

一键过原创工具,轻松搬运文章秒变原创

在当今信息爆炸的时代&#xff0c;内容创作的重要性不言而喻。对于追求效率的创作者来说&#xff0c;一键过原创工具无疑是一股清新的风潮&#xff0c;它以其独特的功能&#xff0c;让文章搬运变得轻松&#xff0c;瞬间转化为原创佳作。一键过原创工具的诞生&#xff0c;不仅代…

【OpenCV】 中使用 Lucas-Kanade 光流进行对象跟踪和路径映射

文章目录 一、说明二、什么是Lucas-Kanade 方法三、Lucas-Kanade 原理四、代码实现4.1 第 1 步&#xff1a;用户在第一帧绘制一个矩形4.2 第 2 步&#xff1a;从图像中提取关键点4.3 第 3 步&#xff1a;跟踪每一帧的关键点 一、说明 本文针对基于光流法的目标追踪进行叙述&am…

Godot利用刚体让3d物体动起来

效果如图 有人说你怎么能控制刚体不是物理引擎控制吗&#xff1f;哈哈&#xff0c;非也&#xff0c;非也&#xff0c;我控制不是刚体而是相机&#xff0c;记住刚体的运动状态是不受玩家控制的&#xff0c;你最多给一个力&#xff0c;但是这个力怎么让物体运动是由物理引擎控制。…

Vivado生成bitstream时报[DRC CFGBVS-1]警告的问题

目录 警告信息解决方法 警告信息 [DRC CFGBVS-1] Missing CFGBVS and CONFIG_VOLTAGE Design Properties: Neither the CFGBVS nor CONFIG_VOLTAGE voltage property is set in the current_design. Configuration bank voltage select (CFGBVS) must be set to VCCO or GND, …

6.Linux_服务器搭建

TFTP服务器 1、概述 什么是TFTP服务器&#xff1a; TFTP&#xff08;Trivial File Transfer Protocol&#xff09;即简单文件传输协议是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议&#xff0c;提供不复杂、开销不大的文件传输服务。端口号为69 介…

垃圾分类网站

TOC springboot0769垃圾分类网站 绪论 1.1研究背景 随着网络不断的普及发展&#xff0c;垃圾分类网站依靠网络技术的支持得到了快速的发展&#xff0c;首先要从用户的实际需求出发&#xff0c;通过了解用户的需求开发出具有针对性的垃圾分类、垃圾图谱等功能&#xff0c;利…

集成测试怎么做?

任何产品想要长期保持高质量运行&#xff0c;集成测试正是实现这一目标必不可少的工具。 本文重点介绍集成测试实现的流程&#xff0c;而非测试工具本身。我们的目的是聚焦于创建测试过程中你可能遇到的问题&#xff0c;以便你能自主地推进工作。 缺陷的成本 细节决定成败&a…

黑神话孙悟空:超燃视频混剪制作

黑神话孙悟空&#xff0c;这个名字如今在游戏界乃至整个网络世界都如同一颗璀璨的超新星&#xff0c;光芒万丈。 它的热度持续飙升&#xff0c;只要与这个话题相关联&#xff0c;仿佛就拥有了吸引大量关注的魔力。 对于那些不太懂自媒体运营的小伙伴来说&#xff0c;如何在这股…

回顾我的亚马逊云科技四大认证之旅:从零到认证高手的成长历程

前言 在2022年经过数个月的努力&#xff0c;我成功获得了三个AWS助理级认证&#xff0c;并在2024年初取得了最新推出的助理级认证。趁着备考时的学习内容和心得体会还历历在目&#xff0c;我想借此机会和大家分享一下这段不平凡的旅程。 助理级认证是什么 引用自&#xff1a…

培训第三十四天(初步了解Docker与套接字的应用)

上午 回顾 1、主从复制&#xff08;高可用&#xff09; 2、传统的主从复制 3、gtids事务型的主从复制 4、注意 1&#xff09;server_id唯一 2&#xff09;8.X版本需要get_ssl_pub_key 3&#xff09;5.X不需要 4&#xff09;change master to 5&#xff09;stop | sta…

InternLM2_PracticalCamp_L2_task3_LMDeploy量化部署进阶实践

1 配置LMDeploy环境 1.1 InternStudio开发机创建与环境搭建 点选开发机&#xff0c;自拟一个开发机名称&#xff0c;选择Cuda12.2-conda镜像。 我们要运行参数量为7B的InternLM2.5&#xff0c;由InternLM2.5的码仓查询InternLM2.5-7b-chat的config.json文件可知&#xff0c;…

vue+echarts:echarts地图页面跳转

在setOption的平级写点击事件&#xff0c;给chart添加click监听 getmapChart.setOption({......})//和数据对应即可 //点击区域实现页面跳转getmapChart.on(click,function(params){// console.log(params);switch(params.name){case "xxxx":top.location.href"…

PHP之 通过ecc,sm2加密证书实现 sm2国密 加密

SM2 为非对称加密&#xff0c;基于 ECC。该算法已公开。由于该算法基于 ECC&#xff0c;故其签名速度与秘钥生成速度都快于 RSA。ECC 256 位&#xff08;SM2 采用的就是 ECC 256 位的一种&#xff09;安全强度比 RSA 2048 位高&#xff0c;但运算速度快于 RSA。 openssl_pkey_…

信息学奥赛初赛天天练-72-NOIP2016普及组-基础题3-无向图、简单无向图、自环、平行边、顶点的度、握手定理、递归

NOIP 2016 普及组 基础题3 5 以下不是存储设备的是( ) A 光盘 B 磁盘 C 固态硬盘 D 鼠标 6 如果开始时计算机处于小写输入状态&#xff0c;现在有一只小老鼠反复按照 CapsLock、 字母键 A、字母键 S、字母键 D、字母键 F 的顺序循环按键&#xff0c;即 CapsLock、A、S、D、F、…