Linux网络——Socket编程函数

news2024/9/20 21:44:46

一.网络命令

1.ping

ping命令用来检测网络是否连通,具体用法为:

ping + 任意网址

结果如下:

当出现上述字段时,证明网络是连通的,这里值得注意的是,ping命令执行之后会不断进行网络检测,不会停止,需要主动停止,但是我们也可以指定ping命令的检测次数,指令为:

 ping -c + 次数 + 任意网址

 如图,执行指定次数后便会立即退出。


 2.netstat

netstat是一个用来查看网络状态的重要工具,常用的选项有以下几个:

  • n:拒绝显示别名,能显示数字的全部转换为数字。
  • l:仅列出有在Listen(监听)的服务状态。
  • p:显示建立相关链接的程序名。
  • t(tcp):仅显示tcp相关选项。
  • u(udp):仅显示udp相关选项。
  • a(all):显示所有选项,默认不显示LISTEN相关。

3.watch 

watch命令可以定期执行某命令,具体用法为:

watch -n + 数字 + 命令 

即每个若干数字时长就会执行一次后边的命令。


4.pidof

pidof指令可以直接通过进程的名字来查看该进程的pid,具体用法为:

pidof + 进程名


二.UDP网络编程

1.创建Socket

#include <sys/types.h>
#include <sys/socket.h>

int socket(int domain, int type, int protocol);

该函数用于创建套接字。 

  •  参数1表示套接字的用途,一般可有两种选择:

AF_UNIX:本地

AF_INET:网络

  • 参数2表示套接字的类型,在UDP使用中,设为SOCK_DGRAM
  • 参数3表示协议的名称,一般不做处理,设为0。
  • 返回值为文件描述符,返回失败为-1

2.bind

#include <sys/types.h>
#include <sys/socket.h>

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

 该函数用于绑定端口号。

  • 参数1为绑定对应套接字的文件描述符。
  • 参数2为绑定端口服务器的结构体信息。
  • 参数3为结构体大小。

绑定成功返回0,绑定失败返回-1。


3.recvfrom

#include <sys/types.h>
#include <sys/socket.h>

ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,struct sockaddr *src_addr, socklen_t *addrlen); 

该函数用于读取网络传输的数据

  • 参数1为绑定对应套接字的文件描述符。
  • 参数2为缓冲区。
  • 参数3为缓冲区大小。
  • 参数4为阻塞标记。
  • 参数5表示信息的来源。
  • 参数6为信息来源的大小

读取成功返回数据大小,失败返回-1。


4.sendto

#include <sys/types.h>
#include <sys/socket.h>

ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,const struct sockaddr *src_addr, socklen_t addrlen); 

该函数用于发送网络传输的数据

  • 参数1为绑定对应套接字的文件描述符。
  • 参数2为缓冲区。
  • 参数3为缓冲区大小。
  • 参数4为阻塞标记。
  • 参数5表示信息的目的地。
  • 参数6为信息目的地的大小

读取成功返回数据大小,失败返回-1。


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

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

相关文章

Linux——网络基础Socket编程

目录 一计算机网络背景 二协议 1初始协议 1.1协议分层 1.2OSI七层模型 1.3TCP/IP五层模型 2再始协议 2.1为什么要有TCP/IP协议 2.2TCP/IP与OS的关系 2.3所以什么是协议 三网络传输基本流程 1局域网&#xff08;以太网&#xff09;通信原理 1.1认识mac地址 2同…

【软件设计师真题】下午题第一大题---数据流图设计

解答数据流图的题目关键在于细心。 考试时一定要仔细阅读题目说明和给出的流程图。另外&#xff0c;解题时要懂得将说明和流程图进行对照&#xff0c;将父图和子图进行对照&#xff0c;切忌按照常识来猜测。同时应按照一定顺序考虑问题&#xff0c;以防遗漏&#xff0c;比如可以…

综合案例-数据可视化-地图

一、pyecharts—地图快速入门 假设我们要将6个地区的某种数量在地图上标注出来&#xff0c;首先导入pyecharts包内地图相关模块&#xff0c;然后准备地图数据&#xff08;数据类型是列表&#xff0c;列表的元素类型为元组&#xff09;&#xff0c;然后把准备好的数据添加进地图…

Java笔试面试题AI答之单元测试JUnit(1)

文章目录 1. 什么是JUnit&#xff1f;2. JUnit的重要特征是什么&#xff1f;3. 什么是单元测试案例&#xff1f;单元测试的特点&#xff1a;单元测试的好处&#xff1a;编写单元测试案例的步骤&#xff1a; 4. 何时在开发周期中编写单元测试&#xff1f;5. 为什么不直接使用Sys…

【鸿蒙开发从0到1 day07】

ArkTS-基础语法 一.开发环境1.下载Dev Eco Stdio2.下载chinese插件3.基础入门4.输出语句5.注释 二.3种常见的数据类型1.数据类型2.储存数据(1)变量:专门用来存储数据的容器(可变)(2)常量(3)命名规则 三.数组四.函数1.无参函数2.有参函数3.返回值4.箭头函数 五.对象六.总结 一.开…

HBuilderx中vue页面引用scss样式

scss为css样式的预编译器&#xff0c;引入了变量、嵌入、混合、集成、引入等功能&#xff0c;相对于css样式&#xff0c;实现了样式的编程&#xff0c;具有更灵活的样式编写模式。 那么在HBuilderx中&#xff0c;“.vue”格式页面如何调用scss样式呢&#xff1f;详细如下&#…

每日一练7:简写单词(含链接)

1.链接 简写单词_牛客题霸_牛客网 2.题目 3.代码1&#xff08;错误经验&#xff09; #include <iostream> #include <string> using namespace std;int main() {string s;string ret;int count 0;while(cin >> s)for(auto a : s){if(count 0){if( a <…

字符串操作的高效工具—正则表达式

字符串操作的高效工具—正则表达式 一 . 概述1.1 认识正则表达式1.2 正则表达式体验案例 二 . 使用2.1 字符类2.2 逻辑运算符2.3 预定义字符2.4 数量词2.5 分组括号2.6 字符串中常用含有正则表达式的方法 正则表达式&#xff08;Regular Expression&#xff0c;简称 regex 或 r…

xcode打包报错之 zip fail / copy fail

在xcode中archive打包中&#xff0c;遇到提示zip fail或者copy fail&#xff0c;此时请清理你电脑的缓存文件了&#xff0c;但凡遇到这两种报错&#xff0c;是编译时运行内存不够导致的&#xff0c;请及时查看并清理你的电脑。 如下&#xff1a; 将对应的缓存或者垃圾清理&am…

春日美食汇:基于SpringBoot的订餐平台

2 系统关键技术 2.1JSP技术 JSP(Java脚本页面)是Sun和许多参与建立的公司所提倡的动态web技术。将Java程序添加到传统的web页面HTML文件()。htm,。Html) [1]。 JSP这种能够独立使用的编程语言可以嵌入在html语言里面运行&#xff0c;正因为JSP参照了许多编程语言的特性&#xf…

C++——类与对象(二)

目录 引言 类的默认成员函数 构造函数 1.构造函数的概念 2.注意事项 初始化列表 1.初始化列表的概念 2.注意事项 析构函数 1.析构函数的概念 2.注意事项 拷贝构造函数 1.拷贝构造函数的概念 2.注意事项 运算符重载 1.运算符重载的概念 2.注意事项 赋值运算符…

食家巷桃酥:一口酥脆,回味悠长

在众多的传统糕点中&#xff0c;食家巷桃酥以其独特的魅力脱颖而出&#xff0c;成为了许多人心中的美味记忆。初见食家巷桃酥&#xff0c;那金黄的色泽便让人食欲大增。每一块桃酥都像是一件小小的艺术品&#xff0c;散发着诱人的香气。它的外形饱满&#xff0c;边缘微微隆起&a…

JVM 调优篇1 类的加载器与加载过程

一 基本知识 1.1 JIT&AOT JIT: Just Time compilation 即时编译器 在程序运行时将字节码或中间表示转换为机器代码。 AOT: Ahead of Tmie Compilation &#xff1a; 预编译 在程序运行之前将高级语言代码完全编译成机器代码。 1.2 字面量和符号引用* 字面量&am…

安卓下载工具箱_3.8.1/去浏览器跳转登录就是会员

下载工具箱app是一款支持56种下载协议的安卓万能下载工具,下载工具箱最新版主要提供网络视频解析下载,资源嗅探下载,以及本地视频扫描提取功能,同时提供不常见的视频编辑功能,例如:智能清洗,高帧率/码率等 链接: https://pan.baidu.com/s/1pW0CgmGv9bmzGkBA4rV2oQ?pwdxdby …

群晖NAS安装alist

官方文档&#xff1a;https://alist.nn.ci/zh NAS参考&#xff1a;https://post.smzdm.com/p/an9zpvev/ Windows安装&#xff1a;alist-windows-amd64.zip 手机参考&#xff1a;https://studylessshape.github.io/post/note/alist-install-for-android/ 质感文件可以不用安&…

Science|癌症中三级淋巴结构的免疫调节作用与治疗潜力|顶刊精析·24-09-08

小罗碎碎念 Science文献精析 今天精析的这一篇综述&#xff0c;于2022-01-07发表于Science&#xff0c;主要讨论了癌症中的三级淋巴结构&#xff08;Tertiary Lymphoid Structures, TLS&#xff09;及其在肿瘤免疫反应中的作用。 作者类型作者姓名单位名称&#xff08;中文&…

前端学习笔记-Web APls篇-04

Dom节点&移动端滑动 1.日期对象 日期对象:用来表示时间的对象作用:可以得到当前系统时间 1.1实例化 在代码中发现了 new 关键字时&#xff0c;一般将这个操作称为实例化 创建一个时间对象并获取时间 获得当前时间 获得指定时间 1.2时间对象方法 使用场景&#xff1a…

图的广度优先搜索(BFS)算法与邻接矩阵表示

图的广度优先搜索(BFS)算法与邻接矩阵表示 1. 图的表示2. 广度优先搜索(BFS)BFS 算法步骤:3. 使用邻接矩阵的 BFS 实现4. 运行时间分析时间复杂度:空间复杂度:5. BFS 使用邻接列表与邻接矩阵的比较BFS 在邻接列表上的运行时间:6. 结论在计算机科学中,图是一种重要的数…

Mybatis-设计模式总结

1、Builder模式 Builder模式的定义是“将一个复杂对象的构建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。”&#xff0c;它属于创建类模式&#xff0c;一般来说&#xff0c;如果一个对象的构建比较复杂&#xff0c;超出了构造函数所能包含的范围&#x…

Spring05——注解开发定义bean、Spring纯注解开发模式

19-注解开发定义bean Spring的IOC/DI对应的配置开发前面的内容已经讲解完成&#xff0c;但是使用起来相对来说还是比较复杂的&#xff0c;复杂的地方在配置文件。 Spring到底是如何简化代码开发的呢? 要想真正简化开发&#xff0c;就需要用到Spring的注解开发&#xff0c;Spr…