python 网络编程 (1)
2016-04-03 20:03
477 查看
TCP连接
网络端代码
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import socket,time,threading def tcplink(sock, addr): print('Accept new connection from %s:%s...' % addr) sock.send(b'Welcome!') while True: data = sock.recv(1024) time.sleep(1) if not data or data.decode('utf-8') == 'exit': break sock.send(('Hello, %s!' % data.decode('utf-8')).encode('utf-8')) sock.close() print('Connection from %s:%s closed.' % addr) s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 监听端口: s.bind(('127.0.0.1', 9999)) s.listen(5) print('Waiting for connection...') while True: # 接受一个新连接: sock, addr = s.accept() # 创建新线程来处理TCP连接: t = threading.Thread(target=tcplink, args=(sock, addr)) t.start()
客户端代码
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 建立连接: s.connect(('127.0.0.1', 9999)) # 接收欢迎消息: print(s.recv(1024).decode('utf-8')) for data in [b'Michael', b'Tracy', b'Sarah']: # 发送数据: s.send(data) print(s.recv(1024).decode('utf-8')) s.send(b'exit') s.close()
UDP连接
服务器代码
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import socket s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)#SOCK_DGRAM 表示UDP # 绑定端口: s.bind(('127.0.0.1', 9999)) print('Bind UDP on 9999...') while True: # 接收数据: data, addr = s.recvfrom(1024) print('Received from %s:%s.' % addr) s.sendto(b'Hello, %s!' % data, addr)
客户端代码
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import socket s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) for data in [b'Michael', b'Tracy', b'Sarah']: # 发送数据: s.sendto(data, ('127.0.0.1', 9999)) # 接收数据: print(s.recv(1024).decode('utf-8')) s.close()
相关文章推荐
- TCP/IP协议详解
- Http头:only-if-cached
- iOS中发送HTTP请求的方案
- [置顶] Android开发之http网络请求返回码问题集合。
- linux NFS网络文件系统
- linux命令--tcpdump
- 【linux】记一次httpd服务正常,http不能访问的惨痛教训
- 《浅谈HTTP协议》
- java网络编程
- [Angular 2] Async Http
- HTTP状态码一览表
- iOS UILabel显示网络图片 NSMutableAttributedString使用网络图片
- FTP 、TFTP、HTTP
- CentOS 6.7 禁用 IPV6网络的方法
- volley Post网络请求
- 【Java网络编程】Socket的使用
- 【unp】unix网络编程卷1-->环境搭建(ubuntu14.04)
- 拥塞避免算法和慢启动算法的共同作用
- 计算机网络overview-2
- Android网络与数据存储_学习笔记_第六周:SQLite与ContentProvider