Python-Socket
socket通常也称作套接字,用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过“套接字”向网络发出请求或者应答网络请求
socket既是一种特殊文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)
socket和file的区别
file模块是针对某个指定文件进行【打开】【读写】【关闭】
socket模块是针对服务器端和客户端socket进行【打开】【读写】【关闭】
实例:
在wen页面中访问
返回http 1.1 200 OK和HelloWorld
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#!/usr/bin/env python #coding:utf-8 import socket def handle_request(client): client.send("HTTP/1.1 200 OKrnrn") client.send("Hello, World") def main(): # 创建sock对象 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 监听端口 sock.bind(('localhost',8080)) # 开始监听 sock.listen(5) while True: # 阻塞,等连接的请求,直到有请求来连接 # connection:代表客户端sock的对象 # address:客户端IP地址 connection, address = sock.accept() buf = connection.recv(1024) print buf connection.send('http1.1 200 OKrnrn') connection.send("Hello World") connection.close() if __name__ == '__main__': main() |
---|
实例:10086服务
服务端:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import socket ip_port = ('127.0.0.1',8888) sk = socket.socket() sk.bind(ip_port) sk.listen(5) while True: conn,address = sk.accept() conn.sendall('欢迎致电 10086,请输入1xxx,0转人工服务.') Flag = True while Flag: data = conn.recv(1024) if data == 'exit': Flag = False elif data == '0': conn.sendall('通过可能会被录音.........一大推') else: conn.sendall('请重新输入.') conn.close() |
---|
客户端:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import socket ip_port = ('127.0.0.1',8888) sk = socket.socket() sk.connect(ip_port) sk.settimeout(5) while True: data = sk.recv(1024) print 'receive:',data inp = raw_input('please input:') sk.sendall(inp) if inp == 'exit': break sk.close() |
---|
- centos下部署redis服务环境的操作记录
- php-redis扩展模块安装记录
- [silverlight基础]仿文字连接跑马灯效果-高手绕道
- 未解决:长字符串含…
- Iptables防火墙规则使用梳理
- “正在注册字体”问题解决
- linux下安装php的swoole扩展模块(安装后php加载不出来?)
- linux下查询域名或IP注册信息的操作记录(whois)
- 域名资讯:多枚区块链域名结拍,区块链概念火热
- 一批好米交易:qrf.com15.4万元结拍
- mysql主从同步(2)-问题梳理
- 老丁独家!前方高能,与“程序崩溃”的第一次邂逅!
- 微信可接收火车购票、退票及改签等通知啦!别忘了,春运火车票下周开售!
- 如何用SPSS分析问卷?用SPSS分析调查问卷数据的方法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法