python - socket练习(输入系统命令)

Posted UnixFBI 运维特工

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python - socket练习(输入系统命令)相关的知识,希望对你有一定的参考价值。

socket_server端代码:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Auther: pangguoping

import socket
import subprocess
ip_port=(127.0.0.1,9990)
#买手机
s=socket.socket()
s.bind(ip_port)
s.listen(5)
while True:
    conn,addr=s.accept()
    while True:
        try:
            recv_data=conn.recv(1024)
            if len(recv_data) == 0:break
            #发消息
            p=subprocess.Popen(str(recv_data,encoding=utf-8),shell=True,stdout=subprocess.PIPE)
            res=p.stdout.read()
            if len(res) == 0:
                send_data=cmd err
            else:
                send_data=str(res,encoding=gbk)
            print(send_data)
            conn.send(bytes(send_data,encoding=utf-8))

        except Exception:
            break
    #挂电话
    conn.close()

socket_client代码

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Auther: pangguoping

import socket
ip_port=(127.0.0.1,9990)
#买手机
s=socket.socket()
#拨号
s.connect(ip_port)
#发送消息
while True:
    send_data=input(">>:").strip()
    if send_data == exit:break
    if len(send_data) == 0:continue
    s.send(bytes(send_data,encoding=utf-8))
    #收消息
    recv_data=s.recv(1024)
    print(str(recv_data,encoding=utf-8))
    #挂电话
s.close()

 

首先,运行socket_server端程序,然后才能执行客户端程序

这里执行socket_client.py

>>:dir
 驱动器 D 中的卷没有标签。
 卷的序列号是 626C-277F

 D:\PycharmProjects\s13\day9\SOCKET_TEST2 的目录

2016/07/03  15:16    <DIR>          .
2016/07/03  15:16    <DIR>          ..
2016/07/03  15:15               470 socket_client.py
2016/07/03  15:16               810 socket_server.py
2016/07/03  14:54                70 __init__.py
               3 个文件          1,350 字节
               2 个目录 90,986,483,712 可用字节

如果输入错误的命令,输出:

>>:sdkflsdfds
cmd err

 

以上是关于python - socket练习(输入系统命令)的主要内容,如果未能解决你的问题,请参考以下文章

python学习40——课后练习

python练习——moudule03——选课系统

新手MFC学习之Socket练习

socket实现在python中调用操作系统的命令(subprocess)

socket小练习:通过server端,执行cmd命令

python socket   编程之一(练习)