Python初学者遇到的一些小问题

1.代码添加中文注释后,在Eric软件下直接运行没有问题,但是在命令行窗口运行不了,错误提示见下图。

 2.使用python实现socket通信,server在IDE中运行,client在命令行窗口运行,结果cmd中中文显示乱码。网上搜索了一下,发现原因是cmd中默认GBK编码,而IDE中指定utf-8编码。尝试在cmd中输入chcp 65001,将命令行转换为utf-8代码页,结果还是乱码,于是只能手动修改client代码,转换编码格式,下面是server和client的代码。

 1 #!/usr/bin/python
 2 # -*- coding: utf-8 -*-
 3 # 文件名:server.py
 4 
 5 import socket                # 导入 socket 模块
 6 
 7 s = socket.socket()          # 创建 socket 对象
 8 host = socket.gethostname()  # 获取本地主机名
 9 port = 12345                 # 设置端口
10 s.bind((host, port))         # 绑定端口
11 
12 s.listen(5)                  # 等待客户端连接
13 
14 #服务端只进行一次连接
15 while True:
16     c, addr = s.accept()     # 建立客户端连接。
17     print '连接地址:', addr
18     c.send('欢迎访问服务端!')
19     c.close()                # 关闭连接
20     break
21 print 'exit..'
 1 #!/usr/bin/python
 2 # -*- coding: utf-8 -*-
 3 # 文件名:client.py  在命令行窗口运行,因为命令行默认GBK编码,所以Python2.X环境需要进行编码转换
 4 
 5 import socket               # 导入 socket 模块
 6 
 7 s = socket.socket()         # 创建 socket 对象
 8 host = socket.gethostname() # 获取本地主机名
 9 port = 12345                # 设置端口好
10 
11 s.connect((host, port))
12 
13 #开始编码转换
14 content = s.recv(1024)
15 content_unicode = content.decode("utf-8")
16 content_gbk = content_unicode.encode("gbk")
17 #转换结束
18 
19 print content_gbk
20 #print s.recv(1024)
21 s.close()  

3.接上篇博客中提到的函数中添加延时,但界面无法实现先后显示的问题,之前的代码见下图:

后来尝试将类似代码放到线程函数中,运行正常,新代码见下图:

需要注意的是,使用thread模块创建线程时,向线程函数传递的第二个参数得是一个元组,并且元素后接“,”。

thread.start_new_thread( self.slot_B, (0.5, ) )   

  

 

转载于:https://www.cnblogs.com/wyjajt/p/9140226.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值