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