这篇文章也是对前面所学的网络编程的一个巩固和实战,在这个案例中,主要实现的功能是:
1. 利用socket,psutil模块阻止远端主机运行特定程序——这里的特定程序规定了【'calc.exe','cmd.exe'】,不同操作系统进程的名字会有所不同;
2. 客户端连接服务器,接收服务器中的黑名单——即阻止运行的特定程序,将黑名单打印出来;通过psutil.pids()获得本机运行的所有进程id,查看运行的进程中是否存在黑名单中的进程,如果发现,则终止该进程的运行,每隔两秒检查一次;
3. 服务器规定了哪个程序在黑名单,将黑名单发送给客户端,发送成功后打印出该客户端的ip和端口,提示发送成功,之后关掉对应客户端的TCP连接。
客户端:
# 控制进程,客户端
import psutil
import socket
import time
#创建一个socket对象
s = socket.socket()
#与服务器建立连接,如果没有连接成功,每5秒尝试再连接
while 1:
try:
s.connect(('127.0.0.1', 6666)) # 建立tcp连接
break
except:
time.sleep(5)
#服务器将黑名单发送过来,接收黑名单
data = s.recv(1024).decode() # 接受到服务器发送的黑名单
# 将黑名单列表还原回来,并打印
blacklist = data.spli