pytho核心编程2-1中代码运行问题
书籍是《python核心编程》第三版,学习环境py3.6
2-1 时间戳服务器
附源代码:
from socket import *
from time import ctime
HOST=''
PORT=
BUFSIZ=
ADDR=(HOST,PORT)
tcpSerSock=socket(AF_INET,SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen()
while True:
print("waiting for connection...")
tcpCliSock,addr=tcpSerSock.accept()
print('connected from:',addr)
while True:
data=tcpCliSock.recv(BUFSIZ).decode()
if not data:
break
tcpCliSock.send(("[%s]%s"%(ctime(),data)))
tcpCliSock.close()
tcpSerSock.close()
运行后
Traceback (most recent call last):
  File "F:/learn_test/时间戳服务器.py", line 18, in <module>
    tcpCliSock.send(("[%s]%s" % (ctime(), data)))
TypeError: a bytes-like object is required, not 'str'
提示需要一个bytes类型的对象,而不是str
 。。。。照着书敲都会有错
。。。。照着书敲都会有错
这还能难住老夫?
from socket import *
from time import ctime
HOST=''
PORT=
BUFSIZ=
ADDR=(HOST,PORT)
tcpSerSock=socket(AF_INET,SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen()
while True:
print("waiting for connection...")
tcpCliSock,addr=tcpSerSock.accept()
print('connected from:',addr)
while True:
data=tcpCliSock.recv(BUFSIZ).decode()
if not data:
break
tcpCliSock.send(("[%s]%s"%(ctime(),data)).encode())
tcpCliSock.close()
tcpSerSock.close()
然后继续运行
Traceback (most recent call last):
  File "F:/learn_test/时间戳服务器.py", line 15, in <module>
    data=tcpCliSock.recv(BUFSIZ).decode()
OSError: [WinError 10038] 在一个非套接字上尝试了一个操作。

修正后
from socket import *
from time import ctime
HOST=''
PORT=
BUFSIZ=
ADDR=(HOST,PORT)
tcpSerSock=socket(AF_INET,SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen()
while True:
print("waiting for connection...")
tcpCliSock,addr=tcpSerSock.accept()
print('connected from:',addr)
while True:
data=tcpCliSock.recv(BUFSIZ).decode()
if not data:
break
# tcpCliSock.send(("[%s]%s" % (ctime(), data)))
tcpCliSock.send(("[%s]%s"%(ctime(),data)).encode())
tcpCliSock.close()
tcpSerSock.close()
区别就是描红的那一行
本次表演到此结束

pytho核心编程2-1中代码运行问题的更多相关文章
- Android中代码运行指定的Apk
		有时候,当我们编写自己的应用的时候,需要通过代码实现指定的apk,安装指定的主题,或者安装新的apk.可以通过以下方法实现: private void installAPK(String apkUrl ... 
- 回炉重造之重读Windows核心编程-003-内核对象
		内核对象是个比较难理解的概念,问题的根源就在于即使是<核心编程>书中也没有说清楚它的定义,只是不停地举例和描述它的性质,还有如何使用. 盲人摸象,难见全貌.只能尽可能列举它的性质,注意使用 ... 
- windows核心编程 第8章201页旋转锁的代码在新版Visual Studio运行问题
		// 全局变量,用于指示共享的资源是否在使用 BOOL g_fResourceInUse = FALSE; void Func1() { //等待访问资源 while(InterlockedExcha ... 
- python核心编程中的对象值比较VS对象身份比较(转载)
		转载地址: https://blog.csdn.net/Mluka/article/details/51076786 在python核心编程第四章中,P69在优化下面这段代码时提出了:对象值比较VS对 ... 
- iOS堆栈-内存-代码在据算机中的运行
		其实作程序不管是那行,学什么语言最终的目的是和就算机打交道的,我们写的程序计算机是怎么处理的呢??? 计算机运行我们的程序无非就是吧磁盘-内存-cpu三者结合起来 我们写一个程序代码肯定是在此盘中存着 ... 
- js实现网页中的"运行代码"功能
		<!DOCTYPE html> <html> <head> <meta charset='utf8' /> <title>网页中的运行代码功 ... 
- Qt on Android 核心编程
		Qt on Android 核心编程(最好看的Qt编程书!CSDN博主foruok倾力奉献!) 安晓辉 著 ISBN 978-7-121-24457-5 2015年1月出版 定价:65.00元 4 ... 
- windows核心编程 - 线程同步机制
		线程同步机制 常用的线程同步机制有很多种,主要分为用户模式和内核对象两类:其中 用户模式包括:原子操作.关键代码段 内核对象包括:时间内核对象(Event).等待定时器内核对象(WaitableTim ... 
- windows核心编程---第八章 使用内核对象进行线程同步
		使用内核对象进行线程同步. 前面我们介绍了用户模式下线程同步的几种方式.在用户模式下进行线程同步的最大好处就是速度非常快.因此当需要使用线程同步时用户模式下的线程同步是首选. 但是用户模式下的线程同步 ... 
随机推荐
- python线程池实现多线程
			参考文献 http://www.open-open.com/news/view/1c0179b http://blog.jobbole.com/52060/ 按照这个博客,实现获取多台服务器的空间使用 ... 
- [转]Oracle执行计划详解
			Oracle执行计划详解 --- 作者:TTT BLOG 本文地址:http://blog.chinaunix.net/u3/107265/showart_2192657.html --- 简介: ... 
- html5知识点:DOM编程
			DOM是Document Object Model的缩写,中文名称是文档对象模型. DOM是处理HTML页面的标准编程接口,DOM可被JavaScript用来读取.改变HTML的内容和结构. 前端三大 ... 
- Ani动态光标格式解析
			数据结构: Ani文件中的数据是按区段存放的,区段数据结构如下: 标识符(4字节ASCII),数据长度(一个DWORD),数据 按照此规则来看Ani文件,文件起始12字节可以理解为标准文件头,除数据长 ... 
- androidStudio 中 gradle 常用功能
			1. gradle 使用 svn 当前版本信息. def getSvnRevision() { new ByteArrayOutputStream().withStream { os -> de ... 
- PHP+Redis 实例【一】点赞 + 热度 下篇
			这篇主要讲如何将数据保存回Mysql,但是里面还会涉及到如何将错误信息以及提示信息保存到文件里,方便以后的运维,再有就是如何使用PHP写进程BAT. Redis数据刷回数据库前的知识准备 首先针对上篇 ... 
- 在centos上搭建SVN服务器和MySQL
			----------搭建MySQL--------------- 1.查看yum库中的mysql yum list | grep mysql //查看yum库中的mysql 2.选择需要的mysql进 ... 
- django框架中的中间件
			什么是中间件 中间件就是在url进入路由之前进行检测的一个类 也就是说,每一个请求都是先通过中间件中的 process_request 函数,这个函数返回 None 或者 HttpResponse 对 ... 
- Mybatis分页插件PageHelper使用
			一. Mybatis分页插件PageHelper使用 1.不使用插件如何分页: 使用mybatis实现: 1)接口: List<Student> selectStudent(Map< ... 
- mysql分区分表
			为毛要分表和分区,,,,所有数据库的通病,文件越大,性能越低...那问题就来了.数据越多文件越大...无解?哎,所以说知道 为毛要分区了吧!那分表又是毛线?分表就是把一张表拆分成若干表,,,根据情况常 ... 
