<1>python:网络通信
ip查询
mac:ifconfig
win:ipconfig
TCP与UDP
TCP - 传输控制协议
UDP- 用户数据报协议
dest_ip:目的地址
src_ip:源地址
dest_port:目标端口
src_port:源端口
content:内容
知名端口(0 ~ 1023),动态端口(1024 ~ 65535)
HTTP:80
HTTPS:443
FTP:21
单工:只能单边通信,收或者发信息
半双工:能收或者发信息,但不能同时进行
双工:能同时进行收或者发信息
socket - UDP消息发送与接收
发送:
import socket
# 实例化socket类
# AF_INET:ipv4
# SOCK_DGRAM - udp协议;SOCK_STREAM - tcp协议
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 发送数据
msg = bytes('你好',encoding='unicode_escape')
udp_socket.sendto(msg, ("10.94.86.129",8888))
# 关闭连接
udp_socket.close()
接收:
import socket
# 实例化socket类,创建连接
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 设置程序端口
localaddr = ("", 8888)
udp_socket.bind(localaddr)
# 接受消息并打印
recv_data = udp_socket.recvfrom(2048)
recv_msg = recv_data[0].decode('unicode_escape')
recv_addr = recv_data[1]
print(recv_addr)
print(recv_msg)
# 关闭连接
udp_socket.close()
socket——UDP消息发送与接收
server端
import socket
def main():
# 1.买个手机(创建套接字 socket)
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2.插入电话卡(绑定本地信息 bind)
local_addr = ('', 8000)
tcp_socket.bind(local_addr)
# 3.设置为响铃模式(让默认的套接字由主动变为被动 listen)
tcp_socket.listen(128)
# 4.等待别人的电话(等待客户端链接 accept);tcp_socket负责监听,accept返回的socket负责通信
new_tcp_socket, client_addr = tcp_socket.accept()
# 5.接听(接收数据 recv)
recv_data = new_tcp_socket.recv(1024)
recv_msg = recv_data.decode('unicode_escape')
print(recv_msg)
# 6.回复
msg = input()
msg = bytes(msg, encoding='unicode_escape')
new_tcp_socket.send(msg)
# 7.挂断
new_tcp_socket.close()
tcp_socket.close()
if __name__ == '__main__':
main()
client端
import socket
def main():
# 1.创建套接字
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2.绑定端口
tcp_socket.bind(('',8001))
# 3.连接服务器
tcp_socket.connect(('127.0.0.1', 8000))
# 4.发送消息
msg = input()
msg = bytes(msg, encoding='unicode_escape')
tcp_socket.send(msg)
# 5.接收消息
recv_data = tcp_socket.recv(1024)
recv_msg = recv_data.decode('unicode_escape')
print(recv_msg)
# 6.关闭
tcp_socket.close()
exit()
if __name__ == '__main__':
main()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程