socket模块
1.socket模块
socket是Python中的一种数据结构====>套接字
socket模块是用于网络通信的模块,主要是用于tcp的server端和client端的搭建,以及udp的server端和client端的搭建,在搭建服务端的时候,要注意的是:
server端:
ip地址:
几个常见的ip地址的区别:
1. 127.0.0.1用于测试,这个是回环地址,采用该ip后不会走交换机,仅限在本机
2. 0.0.0.0的作用在不同的机器中代表的含义不同,具体的如下:
- 在服务器中,0.0.0.0指的是本机上的所有IPV4地址,如果一个主机有两个IP地址,192.168.1.1 和 10.1.2.1,并且该主机上的一个服务监听的地址是0.0.0.0,那么 通过两个ip地址都能够访问该服务。
- IPV4中,0.0.0.0地址被用于表示一个无效的,未知的或者不可用的目标。
- 在路由中,0.0.0.0表示的是默认路由,即当路由表中没有找到完全匹配的路由的时候所对应的路由。
3. localhost一般是等同于127.0.0.1,不过载Ubuntu上忽悠区别
一般我们在服务端定义一个变量时要注意的是ip地址,测试使用127.0.0.1,ipv4的ip地址,0.0.0.0,localhost都可以,除了localhost和127.0.0.1不能用于局域网内的通信,其余两个都可以实现
端口(port):
端口:可以浅显的理解为操作系统给予,通过端口号,可以确定某一个应用程序,应用程序间的通信时通过端口和ip实现的
一共有65535个,8000以前的端口是留给操作系统备用的
在服务的开一个端口的话,客户端如果要连接的话一定要端口一致才能通信
缓冲(buffersize):
这里是设置缓冲接受多少字节
下面是TCP_Server的代码:

1 from socket import * 2 from time import ctime 3 4 # 主机常量 5 HOST = '' 6 PORT = 9999 7 BUFFERSIZE = 1024 8 ADDR = (HOST, PORT) 9 10 # 实例化对象,绑定地址并启用监听 11 tcpSerSoc = socket() 12 tcpSerSoc.bind(ADDR) 13 tcpSerSoc.listen() 14 15 conn, addr = tcpSerSoc.accept() 16 ret = conn.recv(BUFFERSIZE).decode('utf-8') 17 18 print(ret) 19 20 t = ctime() 21 conn.send(t.encode('utf-8')) 22 23 conn.close() 24 25 tcpSerSoc.close()
client端:
client端要注意的是要连接的服务端的ip地址和端口,在Python3中发送的内容要以bytes类型发送
下边是TCP_Client端的代码:

1 from socket import * 2 from time import ctime 3 4 # 主机常量 5 HOST = 'localhost' 6 PORT = 9999 7 BUFFERSIZE = 1024 8 ADDR = (HOST, PORT) 9 10 tcpCliSoc = socket() 11 tcpCliSoc.connect(ADDR) 12 13 tcpCliSoc.send(b'hello') 14 data = tcpCliSoc.recv(BUFFERSIZE).decode('utf-8') 15 16 print(data) 17 18 tcpCliSoc.close()
要运行的话先要开启服务端,在开启客户端
作者: 咕咚!
出处: https://www.cnblogs.com/linga/
关于作者:专注虚拟化,运维开发,RPA,Rust,Go,Python!
本文版权归作者和博客园共有,禁止*.csdn.net转载,禁止以盈利为目的的转载,转载文章,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(oldsixa@163.com)咨询.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)