如果要做到远程控制对方主机
先编写一个客户端程序
import socket
ip = "192.168.86.11" #对方服务器ip地址
port = 5000 #对方服务器的端口
c = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #链接对方使用tcp协议 对象建立
c.connect((ip,port))
data = c.recv(10240) #接收数据
print(data) #打印
c.send(b"HELLO") #发送数据给对方
c.close()
升级客户端和服务 源码 实现 循环交互
服务端源码
#!/usr/local/bin/python3
import socket
ip = "" #我哪个ip开放 空表示所有ip
port = 5000 #我要开的端口
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #对象s 使用基于tcp协议的网络套接字
s.bind((ip,port)) #对象s 开始绑定ip和端口
s.listen(1) #启动监听状态
conn,addr = s.accept() #当与别人建立连接 addr变量存对方ip conn 连接的对象
print(addr) #显示对方地址
while True:
data = conn.recv(10240) #接收对方字符串 #如果对方不发数据会卡住
print(data) #打印对方发来的数据
conn.send(data)
if data == b"byebye":
break
conn.close() #断开连接
s.close() #关闭套结字
客户端源码
import socket
ip = "192.168.86.11" #对方服务器ip地址
port = 5000 #对方服务器的端口
c = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #链接对方使用tcp协议 对象建立
c.connect((ip,port))
while True:
data = input("请输入命令:")
data = bytes(data,encoding="utf8")
c.send(data) #发送数据给对方
data2 = c.recv(10240)
print(data2)
if data == b"byebye":
break
c.close()
升级可以控制服务端程序
服务端最终源码
#!/usr/local/bin/python3
import socket
import os
ip = "" #我哪个ip开放 空表示所有ip
port = 5000 #我要开的端口
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #对象s 使用基于tcp协议的网络套接字
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) #关闭后不需要保存状态可以立即开启
s.bind((ip,port)) #对象s 开始绑定ip和端口
s.listen(1) #启动监听状态
conn,addr = s.accept() #当与别人建立连接 addr变量存对方ip conn 连接的对象
print(addr) #显示对方地址
while True:
data = conn.recv(10240) #接收对方字符串 #如果对方不发数据会卡住
print(data) #打印对方发来的数据
if data == b"byebye":
break
data = str(data,encoding="utf8")
f = os.popen(data) #可以将命令的内容以读取的方式返回
data2 = f.read()
if data2 == "":
conn.send(b"finish")
else:
conn.send(bytes(data2,encoding="utf8"))
conn.close() #断开连接
s.close() #关闭套结字
客户端最终代码
import socket
ip = "192.168.86.11" #对方服务器ip地址
port = 5000 #对方服务器的端口
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。