python执行程序时老是出现以下问题怎么办?
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) 展开
可以根据以下操作步骤执行:
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,当然会出现乱码了。