Simple UDP server/client written in Python to report back IP address
sys.argv is already a list. I don't see a purpose of list(sys.argv).
Creating sockets in the mainline looks strange. It is more natural to create them in corresponding __init__ calls. Same applies to serv.listen().
from socket import * is really bad practice, especially when socket is used as a parameter:

self.socket = socket


makes me wonder whether the parameter is an instance or a callable.
recvfrom may raise a socket.error exception. Some of them are recoverable, so you may want to catch then as well.