python 中的10053错误,请指点。
我写了一个报文收发程序(服务端),其中接收报文的片段如下:
-------------------------------------------------
#接收报文函数
1:def recv90(conn):
2: if conn==None:
3: return 'socket error'
4: data=conn.recv(8)
5: msglen=String2Int(data[2:4]) #String2Int是将报文中的两个字节内容转换成一个整数,这两个字节记录的是报文的长度。
6: rdata=data+conn.recv(msglen)
7: print 'RECV:',ToHexString(rdata) #ToHexString是将字符串转成16进制形式,比如将"ABC"->"41 42 43"
8: return rdata
--------------------------------------------------------
主程序中调用这个函数,传入socket连接。
开始运行很正常,收发都正常。
但是当客户端中断连接后,又重新连接到服务端,并给服务端发了报文,服务端在利用这个接收函数接收时,程序提示在第4行报错。
data=conn.recv(8)
socket.error: (10053, 'Software caused connection abort')
不知道为何。