COM Sockets

Rafferty rafferty at aol.com
Wed May 3 17:31:30 EDT 2000


I am trying to establish a socket from Excel using COM python code.  I
started with the sample code and tried enclosing it in COM but when I
execute I get a socket error 10061.  Any ideas I want to use COM to send
data from Excel or Word to a socket server for testing.

Thanks
The code is below

COM Part:
class PythonComDemo:
 _public_methods_= ['COMCreateSocket', 'COMSendToPython',
'COMRecieveFromPython']
 _reg_progid_ = "ICE.COMUtilities"
 #created via:
 #import pythoncom
 #print pythoncom.CreateGuid()
 _reg_clsid_ = "{11F76A51-1A10-11D4-B656-00E02941D7F1}"

 def COMCreateSocket(self):
  import socket
  Host = 'XXX.XXX.49.XXX' #real address used
  Port = 7000
  s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  s.connect(Host, Port)
  s.send('Hello World')
  data = s.recv(1024)
  s.close
  return `data`

 def COMSendToPython(self, s):

  return "data sent"

 def COMRecieveFromPython(self, s):
  return "good"

if __name__=='__main__':
 print "Registering COM Server..."
 import win32com.server.register
 win32com.server.register.UseCommandLine(PythonComDemo)

Server Part:
# Echo server program
from socket import *
def serverSample():
     HOST = ''                 # Symbolic name meaning the local host
     PORT = 7000               # Arbitrary non-privileged server
     s = socket(AF_INET, SOCK_STREAM)
     s.bind(HOST, PORT)
     s.listen(1)
     conn, addr = s.accept()
     print 'Connected by', addr
     while 1:
         data = conn.recv(1024)
         if not data: break
     conn.send(data)
     conn.close()

if __name__ == '__main__':
     serverSample()



More information about the Python-list mailing list