看了1个星期的python视频,基本简单了解了下python的基本语法等等,学习到socket觉得有必要写一个简单的例子保存,既能练手也能供以后参考,例子需求,客户端输入相关命令,服务端返回命令结果
server端
#!/bin/env python import os import socket import commands host = '192.168.100.100' port = 10000 sk = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #定义socket的类型和socket的协议 sk.bind((host,port)) #绑定主机和端口号 sk.listen(1) #开始监听 conn,addr = sk.accept() #开始接受请求,且把结果分别赋值给变量conn(对象)和addr(客户端地址) while True: data = conn.recv(4096) result = commands.getoutput(data) #这里之前用的os.popen,但是错误命令时服务端无法返回数据(应该是结束符问题) conn.sendall(result) conn.close()
客户端代码如下:
#!/bin/env python import socket host = '192.168.100.100' port = 10000 sk = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #定义socket的类型和socket的协议 sk.connect((host,port)) #socket客户端连接服务端 while True: cmd = raw_input('cmd:') #定义客户端要发送的命令 sk.sendall(cmd) #客户端发送命令 data = sk.recv(4096) #客户端接收返回 if not data: break print data sk.close()
客户端流程: 定义socket的类型和socket支持的协议==>连接服务端(主机和端口)==>发送数据==>从服务端返回结果
纯粹个人见解,求指正,勿喷,和谐家园!!!