Python 网络编程
来源:互联网 发布:ce教程找怪物数组基址 编辑:程序博客网 时间:2024/05/29 04:33
通过socket获取baidu网页
#!/usr/bin/env python# -*- encoding=utf-8 -*-import socket'''通过socket模仿http,获取baidu网页'''s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)#AF_INET指定IPv4协议,SOCK_STREAM指定TCP协议s.connect(('www.baidu.com', 80))#连接指定IP及端口,参数是一个tuple# 发送请求数据:s.send('GET / HTTP/1.1\r\nHost: www.baidu.com\r\nConnection: close\r\n\r\n')# 接收数据:buffer = []while True: # 每次最多接收1k字节: d = s.recv(1024) if d: buffer.append(d) else: breakdata = ''.join(buffer)s.close()#关闭socketheader, html = data.split('\r\n\r\n', 1)print header #打印头信息# 把接收的数据写入文件:with open('baidu.html', 'wb') as f: f.write(html)#baidu.html就保存到本地了
client与server通过TCP通信
server.py
#!/usr/bin/env python# -*- coding: utf-8 -*-#serverimport socketimport threadingimport timedef tcplink(sock, addr): print 'Accept new connection from %s:%s...' % addr # addr是tuple ('127.0.0.1', 56610) sock.send('Welcome!') while True: data = sock.recv(1024) time.sleep(1) if data == 'exit' or not data: break sock.send('Hello, %s!' % data) sock.close() print 'Connection from %s:%s closed.' % addrs = socket.socket(socket.AF_INET, socket.SOCK_STREAM)#创建TCP,IPv4的Sockets.bind(('127.0.0.1', 6464))#绑定端口s.listen(5)#监听端口,指定等待连接的最大数量5print 'Waiting for connection...'while True: sock, addr = s.accept() #接收一个新连接 t = threading.Thread(target=tcplink, args=(sock, addr)) #创建新线程处理TCP连接 t.start()
client.py
#!/usr/bin/env python# -*- coding: utf-8 -*-# clientimport sockets = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.connect(('127.0.0.1', 6464))# 建立连接:print s.recv(1024)# 接收欢迎消息:for data in ['Michael', 'Tracy', 'Sarah']: s.send(data) # 发送数据: print s.recv(1024)s.send('exit')s.close()
0 0
- Python网络编程例子
- Python的网络编程
- python网络编程
- Python网络编程
- Python的网络编程
- python_网络编程
- Python PycURL 网络编程
- python中的网络编程
- Python网络编程基础
- python网络编程
- python 网络编程
- Python网络编程基础
- python网络编程解疑
- python 网络编程1
- python网络编程
- python 网络编程学习
- [Python] 网络编程(Socket)
- python 网络编程
- 算法竞赛入门经典(第2版)习题2-5
- (13.1.3.10)PMBOK之三:十大知识领域之干系人管理
- 查找次最大数
- 关于cookie需要设置路径以及cookie域
- android开发之手机屏幕状态的监听
- Python 网络编程
- main和_main的区别
- Transform脚本控制游戏对象的变换
- 让div同行显示的方式
- Visual Leak Detector 2.5.1最新版使用方法
- Python挑战游戏汇总
- 【iOS_Development】frame VS bounds
- testparm命令
- Linux软连接和硬链接