您的位置:首页 > 编程语言 > Python开发

我的第一个基于python的socket程序

2015-12-14 16:25 633 查看
看了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支持的协议==>绑定主机和端口==>开始监听==>等待接收数据==>接受客户端数据==>返回结果给客户端

客户端流程: 定义socket的类型和socket支持的协议==>连接服务端(主机和端口)==>发送数据==>从服务端返回结果
纯粹个人见解,求指正,勿喷,和谐家园!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python