Python核心编程(第3版)第2章网络编程中关于tcp/udp服务器和客户端实现代码的运行出错的修正
2018-08-31 17:51
381 查看
在Python核心编程(第3版)第2章网络编程中,
关于tcp/udp服务器和客户端实现代码的运行会出现
【’str’ does not support the buffer interface】之类的错误,
现将自己学习过程中的修正代码粘贴如下:
【TCP服务器/客户端】
# TCP_server.py from socket import * from time import ctime HOST = '' PORT = 21567 BUFSIZ = 1024 ADDR = (HOST, PORT) tcpSerSock = socket(AF_INET, SOCK_STREAM) tcpSerSock.bind(ADDR) tcpSerSock.listen(5) i = 0 while True: print('Waiting for connection...') tcpCliSock, addr = tcpSerSock.accept() print('...connected from:', addr) while True: data = tcpCliSock.recv(BUFSIZ).decode() print(type(data)) print(type(data.encode())) print(type(ctime())) if not data: i = 1 break tcpCliSock.send(('[%s] %s' % (ctime(), data)).encode()) tcpCliSock.close() if i == 1: break tcpSerSock.close()
# TCP_client.py from socket import * HOST = 'localhost' PORT = 21567 BUFSIZ = 1024 ADDR = (HOST, PORT) tcpCliSock = socket(AF_INET, SOCK_STREAM) tcpCliSock.connect(ADDR) while True: print('Input something...') data = input('>>>>>') if not data: break tcpCliSock.send(data.encode()) data = tcpCliSock.recv(BUFSIZ).decode() if not data: break print(data) tcpCliSock.close()
【UDP服务器/客户端】
# UDP_server.py from socket import * from time import ctime HOST = '' PORT = 21567 BUFSIZ = 1024 ADDR = (HOST, PORT) udpSerSock = socket(AF_INET, SOCK_DGRAM) udpSerSock.bind(ADDR) while True: print('waiting for message...') data, addr = udpSerSock.recvfrom(BUFSIZ) if not data: break udpSerSock.sendto(('[%s] %s' % (ctime(), data.decode())).encode(), addr) print('...received from and returned to:', addr) udpSerSock.close()
# UDP_client.py from socket import * from time import ctime HOST = 'localhost' PORT = 21567 BUFSIZ = 1024 ADDR = (HOST, PORT) udpCliSock = socket(AF_INET, SOCK_DGRAM) while True: print('Input something...') data = input('>') if not data: break udpCliSock.sendto(data.encode(), ADDR) data, ADDR = udpCliSock.recvfrom(BUFSIZ) if not data: break print(data.decode()) udpCliSock.close()
相关文章推荐
- WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
- WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
- linux网络编程--服务器客户端(TCP实现)
- 网络编程服务器与客户端实现代码详解
- WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
- WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
- <网络编程培训之三> 实现TCP/UDP的简单Echo服务器
- java udp网络编程及实例代码,实现客户端和服务端通信
- WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
- WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
- Python网络编程之socket编程(一)--使用TCP和UDP客户端和服务器通信
- 宋体、代码-iOS网络编程实践--NSStream实现TCP Socket iPhone客户端-by小雨
- WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
- 网络编程培训之三 实现TCP/UDP的简单Echo服务器
- C# 网络编程之Tcp实现客户端和服务器聊天
- 网络编程资料总结(二)----Tcp多线程服务器和客户端的实现
- TCP客户端/服务器网络编程------多进程并发模型(附带实现)
- WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
- 在java网络编程中实现服务器和客户端一对一的聊天
- iOS网络编程实践--NSStream实现TCP Socket iPhone客户端