I have written following simple socket application in which object defined in separate file and it works.
# models_object.py
class Person(object):
    def __init__(self,name,surname,age):    
        self.name = name
        self.surname = surname
        self.age = age
    def __str__(self):
        return self.name + " " + self.surname
#client.py
import cPickle,socket
from model_objects import Person
def client():     
    client = socket.socket()         
    host = socket.gethostname()           
    port = 8000                
    adem_kerenci = Person("Adem","Kerenci",22)     
    serialized_object = cPickle.dumps(adem_kerenci)
    client.connect((host, port))                   
    client.send(serialized_object)                 
    client.close()                                 
client()   
#service.py
import cPickle,socket
def server():          
    server = socket.socket()                     
    host = socket.gethostname()                  
    port = 8000                 
    server.bind((host, port))                         
    server.listen(1)                          
    connection, address = server.accept()        
    recieved_data = connection.recv(2**20)
    print cPickle.loads(recieved_data)            
    connection.close()                           
server()          
However, if I write Person class definition into client.py, code raises following error.
Traceback (most recent call last):
  File "service.py", line 14, in <module>
     server()        
  File "service.py", line 11, in server
     print cPickle.loads(recieved_data)         
AttributeError: 'module' object has no attribute 'Person'
Is there any relation between importing and serializing?
Note: We tried python 2.7
 
     
    