socket通信----TCP

socket通信——TCP 服务端

import os
import socket

HOST = '172.25.254.31'
PORT = 9887

# 1. 创建服务端的socket对象
with socket.socket() as serverSocket:
    # 2. 绑定一个ip和端口, 客户端连接时的socket;
    serverSocket.bind((HOST, PORT))
    # 3. 一直监听是否有客户端连接
    serverSocket.listen()
    print("server is listening %d......." %(PORT))
    # 4. 如果有客户端连接, 接收客户端的连接;
    # serverSocket.accept会返回2个值, address指的是, 客户端的ip和端口;
    clientSocket, address = serverSocket.accept()
    with clientSocket:
        while True:
            # 5. 客户端和服务端进行通信;
            cmd = clientSocket.recv(1024).decode('utf-8')
            # 执行客户端发送的命令;
""" 执行linux命令:
1. 如果想获取命令是否执行成功? os.systemc('cmd')
       返回为0: 代表成功
       返回为非0, 代表失败;

2. 如果想获取命令的执行结果,可以保存到变量中 os.popen(cmd)"""

            if os.system(cmd) == 0:
                resData = os.popen(cmd).read()
                if resData:
                    resData = resData.encode('utf-8')
                    # 6. 给客户端回复消息
                    clientSocket.send(resData)
                else:
                    print("no response.")

            else:
                print("命令执行失败!")

socket通信—TCP 客户端

import socket

HOST = '172.25.254.31'
PORT = 9887
 #1. 创建服务端的socket对象
with socket.socket() as clientSocket:
    # 2. 连接远程主机
    clientSocket.connect((HOST, PORT))

    # 3. 客户端, 服务端通信
    # 给server主机发送消息
    while True:
        cmd = input('client>>').encode('utf-8')
        clientSocket.send(cmd)
        # 接收服务端的响应(即服务端回复的消息)
        recvData = clientSocket.recv(1024).decode('utf-8')
        print("命令执行结果:", recvData)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值