我的第一个基于python的socket程序
2015-12-14 16:25
633 查看
看了1个星期的python视频,基本简单了解了下python的基本语法等等,学习到socket觉得有必要写一个简单的例子保存,既能练手也能供以后参考,例子需求,客户端输入相关命令,服务端返回命令结果
server端
服务端的流程:定义socket的类型和socket支持的协议==>绑定主机和端口==>开始监听==>等待接收数据==>接受客户端数据==>返回结果给客户端
客户端流程: 定义socket的类型和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动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法