码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-07-03 15:46:22      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:

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练习(输入系统命令)

标签:

原文地址:http://www.cnblogs.com/pangguoping/p/5638098.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!