I am writing a very simple udp socket connection in Python 2.7
The server side is up and running.
I have trouble on the client side.
from socket import *
serverName = '127.0.0.1'
serverPort = 5444
counter = 1;
while counter < 55:
mySocket = socket(AF_INET,SOCK_DGRAM)
try:
mySocket.settimeout(1.0)
message = raw_input('')
mySocket.sendto(message,(serverName, serverPort))
modifiedMessage, serverAddress = mySocket.recvfrom(1024)
except mySocket.timeout:
print 'Request timed out!'
mySocket.close()
else:
print 'Server Response: '
print modifiedMessage
mySocket.close()
I am getting the following error.
except mySocket.timeout:
AttributeError: '_socketobject' object has no attribute 'timeout'
I can't understand how come there is no timeout attribute?!
In fact I am looking at the intelisense and there is no such attribute too.
Any suggestion will be greatly appreciated
解決方案
The socket module has a timeout class. Your socket object, mysocket (of type socket.socket), does not have a timeout attribute.
Try this:
except timeout:
print 'Request timed out!'
mySocket.close()
Note that you should also be careful about using import * in this manner.