在Python核心编程(第3版)第2章网络编程中,
关于tcp/udp服务器和客户端实现代码的运行会出现
【’str’ does not support the buffer interface】之类的错误,
现将自己学习过程中的修正代码粘贴如下:

【TCP服务器/客户端】

# TCP_server.pyfrom socket import *
from time import ctimeHOST = ''
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)tcpSerSock = socket(AF_INET, SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)
i = 0while 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 = 1breaktcpCliSock.send(('[%s] %s' % (ctime(), data)).encode())tcpCliSock.close()if i == 1:break
tcpSerSock.close()
# TCP_client.pyfrom 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:breaktcpCliSock.send(data.encode())data = tcpCliSock.recv(BUFSIZ).decode()if not data:breakprint(data)tcpCliSock.close()

【UDP服务器/客户端】

# UDP_server.pyfrom socket import *
from time import ctimeHOST = ''
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:breakudpSerSock.sendto(('[%s] %s' % (ctime(), data.decode())).encode(), addr)print('...received from and returned to:', addr)udpSerSock.close()
# UDP_client.pyfrom socket import *
from time import ctimeHOST = 'localhost'
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)udpCliSock = socket(AF_INET, SOCK_DGRAM)while True:print('Input something...')data = input('>')if not data:breakudpCliSock.sendto(data.encode(), ADDR)data, ADDR = udpCliSock.recvfrom(BUFSIZ)if not data:breakprint(data.decode())udpCliSock.close()

Python核心编程(第3版)第2章网络编程中关于tcp/udp服务器和客户端实现代码的运行出错的修正相关推荐

  1. 【python网络编程】创建TCP/UDP服务器进行客户端/服务器间通信

    客户端/服务器网络编程介绍 套接字:通信端点 实例:客户端发送数据,接收服务器返回的时间戳 用Python 编写FTP 客户端程序 客户端/服务器网络编程介绍 软件服务器也运行在一块硬件之上,但是没有 ...

  2. JavaScript权威指南 第15章 网络编程 第三部分

    JavaScript权威指南 第15章 网络编程 第三部分 可伸缩矢量图形 15.7.1 在HTML中使用SVG 15.7.2 编程操作SVG 15.7.3 通过JavaScript创建SVG图片 1 ...

  3. 【Netty】第二章 网络编程和 IO 概念剖析

    [Netty]第二章 网络编程 文章目录 [Netty]第二章 网络编程 一.网络编程 1.模拟阻塞模式下服务器单线程处理请求 2.模拟非阻塞模式下服务器单线程处理请求 3.使用 Selector 改 ...

  4. 使用python中的socket实现服务器和客户端,并完成图片的传输

    使用python中的socket实现服务器和客户端,并完成图片的传输. 2018年03月09日 16:05:23 阅读数:301 socket服务器代码: [python] view plaincop ...

  5. linux下用C语言实现TCP/IP服务器与客户端互相发送数据的socket编程

    linux下用C语言实现TCP/IP服务器与客户端互相发送数据的socket编程 server.c #include <sys/stat.h>#include <fcntl.h> ...

  6. CSAPP:第十一章 网络编程

    CSAPP:第十一章 网络编程 11.1 客户端服务器模型11.2 全球IP因特网11.3 套接字接口 11.1 客户端服务器模型   每个网络应用都是基于客户端-服务器模型.采用这个模型,一个应用是 ...

  7. java socket 编程 客户机服务器_Java Socket编程服务器响应客户端实例代码

    通过输入流来读取客户端信息,相应的时候通过输出流来实现. 服务端类的代码: import java.io.BufferedReader; import java.io.IOException; imp ...

  8. Java基础学习——第十四章 网络编程

    Java基础学习--第十四章 网络编程 一.网络编程概述 计算机网络: 把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大.功能强的网络系统,从而使众多的计算机可以方便地互相传递信 ...

  9. java服务端代码_Java Socket编程服务器响应客户端实例代码

    通过输入流来读取客户端信息,相应的时候通过输出流来实现. 服务端类的代码: import java.io.BufferedReader; import java.io.IOException; imp ...

最新文章

  1. UI 积累之select section
  2. 光辉岁月:人工智能的那些人和事(1)
  3. 初识Tcl(二):Tcl 数据类型
  4. f1 score与f2 score的区别
  5. cus.crm.notes.Component.extend(cus.crm.notes.ext.Component, {
  6. android触屏设备event模拟,android 使用命令模拟点击 滑动
  7. c语言汉诺塔递归算法_Python进阶之递归函数的用法及其示例
  8. FileZilla server
  9. html设置等宽字体效果
  10. 红队常用的防守策略.
  11. pe服务器注册表,在PE里如何修改系统注册表?U盘PE下修改本机注册表方法
  12. 计算机用户guest无法删除吗,Win7怎么删除Guest账户?
  13. 自然语言处理NLP概论
  14. 【跨域】Access-Control-Allow-Origin 简单介绍
  15. 世界各地的游戏都是如何分级的?哪个最严格?
  16. OC / Swift / Xcode - 怎么私有化init 方法(禁止调用init方法生成对象)
  17. CpG ODN——艾美捷ODN 1826 (TLRGRADE)说明书
  18. C语言之函数调用流程
  19. 一款能够提高工作效率的小软件
  20. 哈密顿回路的非暴力解法(转自CSDN大神GDTZX)

热门文章

  1. java字符串Emoji表情的处理
  2. 简单的电源隔离和信号地,电源地的处理
  3. web前端-综合应用案例-二维码名片的制作-educoder
  4. 争对让望对思野葛对山栀注解_中华经典名著《笠翁对韵》全文解释(上卷四支)...
  5. 利用CMS漏洞渗透并获取某服务器权限
  6. Python安装第三方库的常用方法:使用pip
  7. CDN和双线机房的区别
  8. 百度统计工具是什么?百度统计工具有什么用呢?
  9. dns服务器配置(本地dns,自己当服务器,自己测试自己)
  10. 震惊!史上最菜的Oracle 11g教程(大佬勿进)