1 ss = socket() #创建一个服务器的套接字 2 ss.bind() #绑定服务器套接字 3 inf_loop: #服务器无限循环 4 cs = ss.recvfrom...()/ss.sendto() # 对话(接收与发送) 5 ss.close() # 关闭服务器套接字 udp客户端 cs = socket() # 创建客户套接字...comm_loop: # 通讯循环 cs.sendto()/cs.recvfrom() # 对话(发送/接收) cs.close() # 关闭客户套接字...udp套接字简单示例 #_*_coding:utf-8_*_ __author__ = 'Linhaifeng' import socket ip_port=('127.0.0.1',9000) BUFSIZE...) while True: qq_msg,addr=udp_server_sock.recvfrom(1024) print('来自[%s:%s]的一条消息:\033[1;44m%s\
本博客将深入讨论套接字编程中的基本概念、常见API以及实际应用,通过一步步的学习,帮助读者逐渐掌握网络编程的精髓。 ️...网络套接字、sockaddr_un 域间套接字 前者用于网络通信,后者用于本地通信 可以根据 16 位地址类型,判断是网络通信,还是本地通信 在进行网络通信时,需要提供 IP 地址、端口号 等网络通信必备项...使用 socket 套接字接口,以 UDP 协议的方式实现简单网络通信 3.2.程序结构 程序由 server.hpp、server.cc、client.hpp、client.cc 组成,大体框架如下...创建套接字使用socket 函数 #include #include // 创建套接字(TCP/UDP 服务器/客户端) int socket...(支持根据参数2自动推导) 返回值:创建成功后,返回套接字(文件描述符),失败返回 -1 因为这里是使用UDP协议实现的 网络通信 参数1 domain 选择 AF_INET(基于 IPv4 标准)
通过 getattr(socket, '_closed') 的返回值可以判断服务端的运行状态。 True 是关闭状态,False 是运行中。
本篇文章将带大家了解网络通信是如何进行的(如包括网络字节序,端口号,协议等) ;再对socket套接字进行介绍;以及一些udp-socket相关网络通信接口的介绍及使用;最后进行对基于udp的网络通信(...我们把币p+port 叫做套接字 socket ;这就是它的由来!...socket和tcp/ip有关也就是和网络层传输层有关-->属于内核-->受OS控制-->需要使用系统接口: 因此当我们使用套接字的时候就需要使用系统提供的接口;后面用的时候我们会讲解!...对于ip地址由本地的字符串样式转化成网络四字节序列模拟操作: 上面过程只需要了解即可!!!...) 下面我们举一个形象例子帮助理解下: 你进入图书馆时,不需要自己去指定要去哪个书架(手动绑定IP地址)以及具体要坐在书架的什么位置看书(手动绑定端口)。
ss 命令可以用来获取 socket 统计信息,它显示的信息和 netstat 命令显示的信息类似,但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快速更高效...-a #显示所有套接字(sockets) -l #显示监听状态的套接字(sockets) -o #显示计时器信息 -e #显示详细的套接字(sockets)信息 -m #显示套接字...(socket)的内存使用情况 -p #显示使用套接字(socket)的进程 -i #显示 TCP内部信息 -s #显示套接字(socket)使用概况 -4 #仅显示IPv4的套接字(sockets...) -6 #仅显示IPv6的套接字(sockets) -0 #显示 PACKET 套接字(socket) -t #仅显示 TCP套接字(sockets) -u #仅显示 UCP套接字(sockets...) -d #仅显示 DCCP套接字(sockets) -w #仅显示 RAW套接字(sockets) -x #仅显示 Unix套接字(sockets) -f #显示 FAMILY类型的套接字
ss命令用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。...但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。...显示套接字(socket)的内存使用情况 -p, --processes 显示使用套接字(socket)的进程 -i, --info 显示 TCP内部信息...IPv6的套接字(sockets) -0, --packet 显示 PACKET 套接字(socket) -t, --tcp 仅显示 TCP套接字(sockets...) -u, --udp 仅显示 UCP套接字(sockets) -d, --dccp 仅显示 DCCP套接字(sockets) -w, --raw
但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。...显示详细的套接字(sockets)信息 -m, --memory 显示套接字(socket)的内存使用情况 -p, --processes 显示使用套接字(socket)的进程 -i, ...--info 显示 TCP内部信息 -s, --summary 显示套接字(socket)使用概况 -4, --ipv4 仅显示IPv4的套接字(sockets) -6, --ipv6... 仅显示IPv6的套接字(sockets) -0, --packet 显示 PACKET 套接字(socket) -t, --tcp 仅显示 TCP套接字(sockets...) -u, --udp 仅显示 UCP套接字(sockets) -d, --dccp 仅显示 DCCP套接字(sockets) -w, --raw 仅显示 RAW套接字(sockets) -x, --unix
但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。...iproute2 包附带的另一个工具,允许你查询 socket 的有关统计信息 命令参数 -h, --help 帮助信息 -V, --version 程序版本信息 -n, --numeric 不解析服务名称...仅显示IPv4的套接字(sockets) -6, --ipv6 仅显示IPv6的套接字(sockets) -0, --packet 显示 PACKET 套接字(socket...) -t, --tcp 仅显示 TCP套接字(sockets) -u, --udp 仅显示 UCP套接字(sockets) -d, --dccp 仅显示 DCCP套接字(sockets) -w, --raw...仅显示 RAW套接字(sockets) -x, --unix 仅显示 Unix套接字(sockets) -f, --family=FAMILY 显示 FAMILY类型的套接字(sockets),FAMILY
但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。...h, --help 帮助信息 -V, --version 程序版本信息 -n, --numeric 不解析服务名称 -r, --resolve 解析主机名 -a, --all 显示所有套接字...(sockets) -l, --listening 显示监听状态的套接字(sockets) -o, --options 显示计时器信息 -e, --extended 显示详细的套接字...(sockets)信息 -m, --memory 显示套接字(socket)的内存使用情况 -p, --processes 显示使用套接字(socket)的进程 -i, --info 显示...仅显示IPv6的套接字(sockets) -0, --packet 显示 PACKET 套接字(socket) -t, --tcp 仅显示 TCP套接字(sockets) -u, --udp
但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。...-h, --help 帮助信息 -V, --version 程序版本信息 -n, --numeric 不解析服务名称 -r, --resolve 解析主机名 -a, --all 显示所有套接字...(sockets) -l, --listening 显示监听状态的套接字(sockets) -o, --options 显示计时器信息 -e, --extended 显示详细的套接字...(sockets)信息 -m, --memory 显示套接字(socket)的内存使用情况 -p, --processes 显示使用套接字(socket)的进程 -i, --info 显示...仅显示IPv6的套接字(sockets) -0, --packet 显示 PACKET 套接字(socket) -t, --tcp 仅显示 TCP套接字(sockets) -u, --udp
ss命令是用于在Linux系统上显示与网络套接字相关的信息的工具。 该工具显示netstat命令的更多详细信息,该命令用于显示活动的套接字连接。...$ ss -lt 6.列出所有UDP连接 要查看所有UDP套接字连接,请使用-ua选项,如图所示。...$ ss -ua 7.列出所有侦听的UDP连接 要列出监听的UDP连接,请使用-lu选项。...$ ss -lu 8.显示套接字的PID(进程ID) 要显示与套接字连接有关的进程ID,请使用-p标志,如图所示。...$ ss -6 11.按端口号过滤连接 ss命令还允许您过滤套接字端口号或地址号。 例如,要显示具有ssh的目标端口或源端口的所有套接字连接,请运行命令。
-unix(-x)、-ipx、-ax25、-netrom和--ddp选项具有相同的效果,地址族inet包括raw、udp和tcp协议套接字。...网络连接 关于活跃的互联网连接TCP、UDP、raw的信息属于以下类别: Proto: 套接字使用的协议tcp、udp、raw。 Recv-Q: 连接到此套接字的用户程序未复制的字节数。...PID/Program name: 进程ID(PID)和拥有套接字的进程的进程名称之间用斜杠分隔,--program使该列包括在内,需要超级用户特权才能在不拥有的套接字上查看此信息,此标识信息尚不适用于...UNIX域套接字 有关活动UNIX域套接字的信息属于以下类别: Proto: 套接字使用的协议,通常是unix。 RefCnt: 引用计数,即通过此套接字连接的进程。.../proc/net/tcp: TCP套接字信息。 /proc/net/udp: UDP套接字信息。 /proc/net/igmp: IGMP多播信息。
但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。...) -l, --listening 显示监听状态的套接字(sockets) -o, --options 显示计时器信息 -e, --extended 显示详细的套接字(sockets)信息 -m,...-summary 显示套接字(socket)使用概况 -4, --ipv4 仅显示IPv4的套接字(sockets) -6, --ipv6 仅显示IPv6的套接字(sockets...) -0, --packet 显示 PACKET 套接字(socket) -t, --tcp 仅显示 TCP套接字(sockets) -u, --udp 仅显示 UCP套接字...ss -pl # 查看进程使用的socket ss -lp | grep 3306 # 找出打开套接字/端口应用程序 ss -u -a 显示所有UDP Sockets ss -o state
物理端口是物理设备的,比如笔记本上插网线的网口,就属于物理端口。应用端口是虚拟的,是网络模型中传输层的一种含义,也叫网络端口。大家常听的tcp端口、udp端口,是用来监听网络信息传输的。...(如有错误,欢迎大家指正) 端口监听工具 netstat netstat 是一个命令行工具,可以提供有关网络连接的信息。...命令: ss -h 参看帮助文档 常用命令: ss –pl #查看进程使用的socket ss -lp | grep 22 #找出打开套接字/端口应用程序...ss -u –a #显示所有UDP Sockets Other lsof lsof是功能强大的命令行应用程序,可提供有关进程打开的文件的信息。...在Linux中,所有内容都是文件,你可以将套接字视为写入网络的文件。
网络套接字与 WebSockets 网络套接字 网络套接字,或简称为套接字,用作内部端点,用于在运行在同一台计算机或同一网络上的不同计算机上的应用程序之间交换数据。...由于网络套接字用于多种网络协议(HTTP、FTP 等),因此可以同时使用多个套接字。套接字是由套接字的应用程序编程接口 ( API )定义的一组函数调用创建和使用的。...有几种类型的网络套接字: 数据报套接字(SOCK_DGRAM),也称为无连接套接字,使用用户数据报协议 (UDP)。数据报套接字支持双向消息流并保留记录边界。...套接字通信 每个网络套接字都由地址标识,地址是传输协议、IP 地址和端口号的三元组。主机之间的通信主要有两种协议:TCP 和 UDP。...= nil { // handle error } 连接到 UDP 套接字 与 TCP 套接字相反,使用 UDP 套接字,客户端只向服务器发送数据报。
2.recvfrom和sendto函数 两个函数类似于标准的read和write函数,不过需要三个额外的参数 #include ssize_t recvfrom(int sockfd...,出错为-1 前三个参数:sockfd, buff, nbytes等同于read和write的前三个参数:描述字,指向读入或者写出缓冲区的指针,读写字节数。...3).由已连接的UDP套接口引发的异步错误返回给他们所在的进程,而未连接UDP套接字不接受任何异步错误。...拥有一个已连接的UDP套接字的进程出于下列目的再次调用connect (1)指定新的IP地址和端口号 (2)断开套接口 第一个目的(即给一个已连接UDP套接口指定新的对端)不同于TCP套接口中...这么做可能返回一个EAFNOSUPPORT错误,不过没有关系。 使得套接口断开连接的是在已连接UDP套接口上调用connect的进程。
传输协议主要有 TCP 和 UDP,TCP 需要建立连接,是可靠的、基于字节流的协议,通常与 IP 协议共同使用;UDP 不需要建立连接,可靠性差,但速度更快。...,数据以字符串形式返回,bufsize 指定要接收的最大数据量,flag 提供有关消息的其他信息,通常可以忽略 send(bytes[, flags]) 发送 TCP 数据,将 string 中的数据发送到连接的套接字...,成功返回 None,失败则抛出异常 recvfrom(bufsize[, flags]) 接受 UDP 套接字的数据,与 recv() 类似,但返回值是 (data,address),其中 data...是包含接收数据的字符串,address 是发送数据的套接字地址 sendto(bytes, flags, address) 发送 UDP 数据,将数据发送到套接字,address 是形式为 (ipaddr...[, buflen]) 返回套接字选项的值 settimeout(value) 设置套接字操作的超时时间,单位是秒 gettimeout() 返回当前超时时间 fileno() 返回套接字的文件描述符
将string 中的数据发送到连接的套接字,但在返同之前会尝试发送所有数据。成功返回None,失败则抛出异常 s.recvfrom(bufsize[.flag]) 接受UDP 套接字的数据。...其中data 是包含接收数据的字符串,address是发送数据的套接字地址 s.sendto(string[,flag].address) 发送UDP 数据。...UDP编程, TCP通信需要一个建立可靠连接的过程,而且通信双方以流的形式发送数据。...相对TCP,UDP则是面向无连接的协议,使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号,就可以直接发送数据包,但是不关心是否能到达目的端,虽然使用UDP传输数据不可靠,但由于它没有建立连接的过程...以上就是UDP服务端和客房端数据交互的流程,UDP的使用与TCP类型,但是不需要建立连接,此外,服务器绑定UDP端口和TCP端口互不冲突,即UDP的9999端品与TCP的9999端口可以各自绑定。
但ss的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快速更高效。...-a, --all 显示所有套接字,即显示侦听和非侦听(对于 TCP,这意味着已建立连接)套接字。 -l, --listening 显示监听状态的套接字。...-e, --extended 显示详细的套接字信息。 -m, --memory 显示套接字的内存使用情况。 -p, --processes 显示使用套接字的进程。...-s, --summary 显示套接字使用概况。 -4, --ipv4 仅显示 IPv4 的套接字。 -6, --ipv6 仅显示 IPv6 的套接字。...-0, --packet 显示 PACKET 套接字。 -t, --tcp 仅显示 TCP 套接字。 -u, --udp 仅显示 UCP 套接字。
,可以是 SOCK_STREAM(流式套接字,主要用于 TCP 协议)或者 SOCK_DGRAM(数据报套接字,主要用于 UDP 协议) 创建一个tcp套接字 import socket s = socket.socket...(address) ,但是成功返回0,失败返回errno的值 recv(bufsize[,flag]) 接收TCP套接字的数据,数据以字节形式返回,bufsize指定接收的最大数据量,flag提供有关消息的其他信息...),data表示接收的数据,address表示发送数据的套接字地址 sendto(string[,flag],address) 发送UDP数据,将数据发送到套接字,address是形式为(ipaddr,...encode('gbk')) # 关闭套接字,只要关闭了,就意味着为不能再为这个客户端服务了,如果还需要服务,只能再次重新连接 client_socket.close() tcp_server_socket.close...UDP头包含很少的字节,比 TCP 负载消耗少,UDP 适用于不需要 TCP 可靠机制的情形,QQ就是采用的UDP协议 通信模型 TCP ?