首页 > 编程语言 > 详细

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

时间:2015-12-14 19:17:21      阅读:222      评论:0      收藏:0      [点我收藏+]

看了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的socket程序

原文:http://smly1989.blog.51cto.com/1519819/1722872

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!