python执行程序时老是出现以下问题怎么办?

Traceback(mostrecentcalllast):File"C:\Users\su\Desktop\树莓派\server.py",line10,insock.b... Traceback (most recent call last):
File "C:\Users\su\Desktop\树莓派\server.py", line 10, in
sock.bind(('202.117.189.31',8964))
File "D:\python\lib\socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
error: [Errno 10049]

程序如下:
#coding=gbk
import socket
import threading
import time
import struct
DEFAULTADDR = ('202.117.189.31',8964)

#建立监听端口
sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.bind(DEFAULTADDR)
#开始监听
sock.listen(5)

print "Waiting..."
while True:
#建立传输连接
conn,addr=sock.accept()
print "Connection from:",addr
#定义文件信息数据结构
FILEINFO = struct.calcsize('128sI')
while True:
try:
fhead = conn.recv(FILEINFO)#获得文件信息
filename,filesize = struct.unpack('128sI',fhead)
print "Filename",filename.strip('\00')
print "Filesize",filesize
filename = "dup_"+filename.strip('\00')
fp = open(filename,'wb')#本地创建文件
print "Recving..."

#传输文件
restsize = filesize
while True:
if restsize > 1024:
data = conn.recv(1024)
else:
data = conn.recv(restsize)
展开
 我来答
百度网友77a4a86f6d
2018-01-04 · TA获得超过1.3万个赞
知道小有建树答主
回答量:82
采纳率:8%
帮助的人:10.9万
展开全部

可以根据以下操作步骤执行:

Traceback (most recent call last):
File "C:/Documents and Settings/Administrator/桌面/11", line 10, in <module>
sock.bind(DEFAULTADDR)
File "<string>", line 1, in bind
error: (10049, "Can't assign requested address")
回溯(最近一次调用):
文件“C:/文件和设置/管理/桌面/11”,10号线,在<模块>
sock.bind(DEFAULTADDR)
文件“<字符串>”,1号线,在绑定
错误:(10049,“无法分配请求的地址”)

在IDLE中执行下面代码,中文显示正常:

# -*- coding:utf-8 -*-

st=raw_input("请输入内容")
print st

但在CMD中执行e:\hello.py,则中文会出现乱码。

可以看出utf-8和gbk都可以通过编码和解码与unicode进行转换,那么如果utf-8转化为gbk该怎么办呢?首先,utf-8通过解码转化为unicode,然后通过unicode编码转化为gbk。为什么CMD会出现乱码呢?这是因为我们写的py程序是utf-8编码的,通过python程序编译后,也是编译为utf-8编码,而这时cmd是通过gbk进行解析的,gbk解析utf-8,当然会出现乱码了。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式