此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出。欢迎各位前来交流。(部分材料来源网络,若有侵权,立即删除)
本人博客所有文章纯属学习之用,不涉及商业利益。不合适引用,自当删除!
若被用于非法行为,与我本人无关
代码
客户端
import socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#创建socket对象,选择AF_INET的目的是使用IPv4进行通信,SOCK_STREAM提供面向连接的稳定数据传输
ip=socket.gethostname()
#ip=''
port=9999
s.connect((ip,port))
while True:
while True:
mes = input("请输入要发送的信息:")
if mes != "exit":
T_mes = bytes(mes,encoding="gbk")
s.send(T_mes)
data=s.recv(1024)
print(str(data,encoding="gbk"))
else:
break;
if mes == "exit":
break;
s.close()
服务端
import socket
import platform
import psutil
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#创建socket对象,选择AF_INET的目的是使用IPv4进行通信,SOCK_STREAM提供面向连接的稳定数据传输
ip=socket.gethostname()
#ip=''
port=9999
s.bind((ip,port))#绑定端口
s.listen(5)#设置最大连接数
while True:
print("服务器启动,正在监听客户端连接")
connet, addr = s.accept() # 建立客户端连接
while True:
data=connet.recv(1024).decode()
print('客户端发送内容:',data)
if data == "show me OS info":
os = platform.uname()
reply01 = bytes(str(os), encoding="gbk")
connet.send(reply01)
else:
if data == "show me Disk info":
m=[]
a = str(psutil.disk_partitions())+str(len(psutil.disk_partitions()))
reply02 = bytes(a,encoding="gbk")
connet.send(reply02)
else:
reply00 = bytes("命令无效\n", encoding="gbk")
connet.send(reply00)
s.close()
运行效果
- 首先启动服务端
- 然后启动客户端
- 可以发送指定的命令,不过需要自行编写,我这边写了一个查看OS版本和一个磁盘分区情况查询
show me OS info
show me Disk info
- 服务端也是有收到客户端发送过来的数据
end