python3客户端与服务端套接字通信

满足客户端与服务端通信,套接字。
选择sentence表示客户端对服务端的请求内容。

client.py

from socket import *

serverName ='192.168.159.135'

serverPort = 12000
clientSocket = socket(AF_INET, SOCK_STREAM)#新建
clientSocket.connect((serverName,serverPort))

# 分别注释掉一个进行测试
# sentence='show me OS info'#打印操作系统的信息
sentence='show me Disk info'#打印磁盘信息
sentence=input("give me a order?")
clientSocket.send(bytes(sentence,'utf-8'))

modifiedSentence = clientSocket.recv(2048)

# 检查类别
# print(type(modifiedSentence))
# print(type(modifiedSentence.decode()))

print ('From Server:'+ modifiedSentence.decode())#打印返回信息,二进制先进行解码

clientSocket.close()#关闭

server.py

from socket import *
import os
import shlex, subprocess

serverPort = 12000
serverSocket = socket(AF_INET,SOCK_STREAM)#新建
serverSocket.bind(('',serverPort))
serverSocket.listen(1)

print ('The server is ready to receive')
while True:
    try:
        connectionSocket, addr = serverSocket.accept()
        sentence = connectionSocket.recv(1024).decode()
        if sentence=='show me OS info':#操作系统信息
            capitalizedSentence = subprocess.check_output(["cat","/proc/version"], shell = False)#返回标准输出
            # 测试使用
            # print(type(capitalizedSentence))
            print(capitalizedSentence)
        elif sentence=='show me Disk info':#磁盘信息
            capitalizedSentence = subprocess.check_output(["lsblk"])
            # 测试使用
            # print(type(capitalizedSentence))
            print(capitalizedSentence)
        else:#其他情况显示为错误
            capitalizedSentence="wrong input"
            print(capitalizedSentence)
        connectionSocket.send(capitalizedSentence.decode(errors='replace').encode(encoding='UTF-8',errors='replace'))#编码
        connectionSocket.close()
    except KeyboardInterrupt:
        exit("keyboard Interrupt")#键盘终止程序运行
    else:
        pass

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值