Python网络编程示例

来源:互联网 发布:photoshop cc mac版本 编辑:程序博客网 时间:2024/04/30 13:19

TCP编程

1、tcp server

#!/usr/bin/env python# -*- coding: utf-8 -*-import socket,threading,timedef 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':breaksock.send(('Hello, %s!' % data.decode('utf-8')).encode('utf-8'))sock.close()print('Connection from %s:%s closed.' % addr)def ttry():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()time.sleep(10)exit(0)if __name__ == '__main__':ttry()

2、tcp client

#!/usr/bin/env python# -*- coding: utf-8 -*-import socketdef ttry():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 ['Michael', 'Tracy', 'Sarah']:# 发送数据:s.send(data)print(s.recv(1024).decode('utf-8'))s.send(b'exit')s.close()if __name__ == '__main__':ttry()

UDP编程

1、udp server

#!/usr/bin/env python# -*- coding: utf-8 -*-import socketdef ttry():s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 绑定端口:s.bind(('127.0.0.1', 9999))print('Bind UDP on 9999...')while True:# 接收数据:data, addr = s.recvfrom(1024)if data.decode('utf-8') != 'exit':print('Received from %s:%s.' % addr)s.sendto(b'Hello, %s!' % data, addr)else:exit(0)if __name__ == '__main__':ttry()

2、udp client

#!/usr/bin/env python# -*- coding: utf-8 -*-import socketdef ttry():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.sendto('exit', ('127.0.0.1', 9999))s.close()if __name__ == '__main__':ttry()