Package ViewerFramework :: Module comm
[hide private]
[frames] | no frames]

Module comm

source code

COMM module

Author: Michel F. Sanner Date: Oct 11 2000

This module implements the Comm class that provides bi-directional communication over sockets. The Comm object provides server functionality, accepting connections from multiple clients (each client is handled by a separate thread). the comm object also provides client side functionality, allowing a Comm object to connect to an existing server.

A - Server side After a Comm object has been created, the startServer method can be called to create a socket (self.serverSocket) and find a free port to which this socket will be bound. The port is stored in self.port

By calling the acceptClients(func, maxConnections) one can allow the server to accept connection from clients. 'func' will be called for each message sreceived from clients. FIXME: calling func should probably set a lock. acceptClients works in its own thread. When a client connects, a new thread is started to handle input from this client (listenToClient()) and the client is added to the Comm's clients dictionary.

The client dictionary uses the client's name as a key and stores the socket and the address created by accept.

hangupClient(name, client) can be called to terminate a connection with a specific client.

sendToClients(message) can be used to send a string to all connected clients

B - Client side

A comm object can be used to connect to a running server using the connectToServer(self, host, port, func). host cane be a host name or an IP address (as string). If the connection is successful a new thread is started to listen to the server and 'func' will be called with all messages comming from that server.

disconnectFromServer(self, clientSocket) can be called to disconnect fropm a server. 'clientSocket' can be a socket or a

Classes [hide private]
  Comm

Functions [hide private]
  foo1(client, data)
  foo(server, data)

Variables [hide private]
  com = Comm()
  AF_APPLETALK = 5
  AF_ASH = 18
  AF_ATMPVC = 8
  AF_ATMSVC = 20
  AF_AX25 = 3
  AF_BRIDGE = 7
  AF_DECnet = 12
  AF_ECONET = 19
  AF_INET = 2
  AF_INET6 = 10
  AF_IPX = 4
  AF_IRDA = 23
  AF_KEY = 15
  AF_NETBEUI = 13
  AF_NETLINK = 16
  AF_NETROM = 6
  AF_PACKET = 17
  AF_PPPOX = 24
  AF_ROSE = 11
  AF_ROUTE = 16
  AF_SECURITY = 14
  AF_SNA = 22
  AF_UNIX = 1
  AF_UNSPEC = 0
  AF_WANPIPE = 25
  AF_X25 = 9
  AI_ADDRCONFIG = 32
  AI_ALL = 16
  AI_CANONNAME = 2
  AI_NUMERICHOST = 4
  AI_PASSIVE = 1
  AI_V4MAPPED = 8
  CAPI = <PyCObject object at 0xb79f1410>
  EAI_ADDRFAMILY = -9
  EAI_AGAIN = -3
  EAI_BADFLAGS = -1
  EAI_FAIL = -4
  EAI_FAMILY = -6
  EAI_MEMORY = -10
  EAI_NODATA = -5
  EAI_NONAME = -2
  EAI_SERVICE = -8
  EAI_SOCKTYPE = -7
  EAI_SYSTEM = -11
  INADDR_ALLHOSTS_GROUP = -536870911
  INADDR_ANY = 0
  INADDR_BROADCAST = -1
  INADDR_LOOPBACK = 2130706433
  INADDR_MAX_LOCAL_GROUP = -536870657
  INADDR_NONE = -1
  INADDR_UNSPEC_GROUP = -536870912
  IPPORT_RESERVED = 1024
  IPPORT_USERRESERVED = 5000
  IPPROTO_AH = 51
  IPPROTO_DSTOPTS = 60
  IPPROTO_EGP = 8
  IPPROTO_ESP = 50
  IPPROTO_FRAGMENT = 44
  IPPROTO_GRE = 47
  IPPROTO_HOPOPTS = 0
  IPPROTO_ICMP = 1
  IPPROTO_ICMPV6 = 58
  IPPROTO_IDP = 22
  IPPROTO_IGMP = 2
  IPPROTO_IP = 0
  IPPROTO_IPIP = 4
  IPPROTO_IPV6 = 41
  IPPROTO_NONE = 59
  IPPROTO_PIM = 103
  IPPROTO_PUP = 12
  IPPROTO_RAW = 255
  IPPROTO_ROUTING = 43
  IPPROTO_RSVP = 46
  IPPROTO_TCP = 6
  IPPROTO_TP = 29
  IPPROTO_UDP = 17
  IPV6_CHECKSUM = 7
  IPV6_DSTOPTS = 4
  IPV6_HOPLIMIT = 8
  IPV6_HOPOPTS = 3
  IPV6_JOIN_GROUP = 20
  IPV6_LEAVE_GROUP = 21
  IPV6_MULTICAST_HOPS = 18
  IPV6_MULTICAST_IF = 17
  IPV6_MULTICAST_LOOP = 19
  IPV6_NEXTHOP = 9
  IPV6_PKTINFO = 2
  IPV6_RTHDR = 5
  IPV6_RTHDR_TYPE_0 = 0
  IPV6_UNICAST_HOPS = 16
  IPV6_V6ONLY = 26
  IP_ADD_MEMBERSHIP = 35
  IP_DEFAULT_MULTICAST_LOOP = 1
  IP_DEFAULT_MULTICAST_TTL = 1
  IP_DROP_MEMBERSHIP = 36
  IP_HDRINCL = 3
  IP_MAX_MEMBERSHIPS = 20
  IP_MULTICAST_IF = 32
  IP_MULTICAST_LOOP = 34
  IP_MULTICAST_TTL = 33
  IP_OPTIONS = 4
  IP_RECVOPTS = 6
  IP_RECVRETOPTS = 7
  IP_RETOPTS = 7
  IP_TOS = 1
  IP_TTL = 2
  MSG_CTRUNC = 8
  MSG_DONTROUTE = 4
  MSG_DONTWAIT = 64
  MSG_EOR = 128
  MSG_OOB = 1
  MSG_PEEK = 2
  MSG_TRUNC = 32
  MSG_WAITALL = 256
  NI_DGRAM = 16
  NI_MAXHOST = 1025
  NI_MAXSERV = 32
  NI_NAMEREQD = 8
  NI_NOFQDN = 4
  NI_NUMERICHOST = 1
  NI_NUMERICSERV = 2
  PACKET_BROADCAST = 1
  PACKET_FASTROUTE = 6
  PACKET_HOST = 0
  PACKET_LOOPBACK = 5
  PACKET_MULTICAST = 2
  PACKET_OTHERHOST = 3
  PACKET_OUTGOING = 4
  PF_PACKET = 17
  SHUT_RD = 0
  SHUT_RDWR = 2
  SHUT_WR = 1
  SOCK_DGRAM = 2
  SOCK_RAW = 3
  SOCK_RDM = 4
  SOCK_SEQPACKET = 5
  SOCK_STREAM = 1
  SOL_IP = 0
  SOL_SOCKET = 1
  SOL_TCP = 6
  SOL_UDP = 17
  SOMAXCONN = 128
  SO_ACCEPTCONN = 30
  SO_BROADCAST = 6
  SO_DEBUG = 1
  SO_DONTROUTE = 5
  SO_ERROR = 4
  SO_KEEPALIVE = 9
  SO_LINGER = 13
  SO_OOBINLINE = 10
  SO_RCVBUF = 8
  SO_RCVLOWAT = 18
  SO_RCVTIMEO = 20
  SO_REUSEADDR = 2
  SO_SNDBUF = 7
  SO_SNDLOWAT = 19
  SO_SNDTIMEO = 21
  SO_TYPE = 3
  SSL_ERROR_EOF = 8
  SSL_ERROR_INVALID_ERROR_CODE = 9
  SSL_ERROR_SSL = 1
  SSL_ERROR_SYSCALL = 5
  SSL_ERROR_WANT_CONNECT = 7
  SSL_ERROR_WANT_READ = 2
  SSL_ERROR_WANT_WRITE = 3
  SSL_ERROR_WANT_X509_LOOKUP = 4
  SSL_ERROR_ZERO_RETURN = 6
  TCP_CORK = 3
  TCP_DEFER_ACCEPT = 9
  TCP_INFO = 11
  TCP_KEEPCNT = 6
  TCP_KEEPIDLE = 4
  TCP_KEEPINTVL = 5
  TCP_LINGER2 = 8
  TCP_MAXSEG = 2
  TCP_NODELAY = 1
  TCP_QUICKACK = 12
  TCP_SYNCNT = 7
  TCP_WINDOW_CLAMP = 10
  has_ipv6 = False

Function Details [hide private]

foo1(client, data)

source code 
None

foo(server, data)

source code 
None

Variables Details [hide private]

com

None
Value:
Comm()                                                                 
      

AF_APPLETALK

None
Value:
5                                                                     
      

AF_ASH

None
Value:
18                                                                    
      

AF_ATMPVC

None
Value:
8                                                                     
      

AF_ATMSVC

None
Value:
20                                                                    
      

AF_AX25

None
Value:
3                                                                     
      

AF_BRIDGE

None
Value:
7                                                                     
      

AF_DECnet

None
Value:
12                                                                    
      

AF_ECONET

None
Value:
19                                                                    
      

AF_INET

None
Value:
2                                                                     
      

AF_INET6

None
Value:
10                                                                    
      

AF_IPX

None
Value:
4                                                                     
      

AF_IRDA

None
Value:
23                                                                    
      

AF_KEY

None
Value:
15                                                                    
      

AF_NETBEUI

None
Value:
13                                                                    
      

AF_NETLINK

None
Value:
16                                                                    
      

AF_NETROM

None
Value:
6                                                                     
      

AF_PACKET

None
Value:
17                                                                    
      

AF_PPPOX

None
Value:
24                                                                    
      

AF_ROSE

None
Value:
11                                                                    
      

AF_ROUTE

None
Value:
16                                                                    
      

AF_SECURITY

None
Value:
14                                                                    
      

AF_SNA

None
Value:
22                                                                    
      

AF_UNIX

None
Value:
1                                                                     
      

AF_UNSPEC

None
Value:
0                                                                     
      

AF_WANPIPE

None
Value:
25                                                                    
      

AF_X25

None
Value:
9                                                                     
      

AI_ADDRCONFIG

None
Value:
32                                                                    
      

AI_ALL

None
Value:
16                                                                    
      

AI_CANONNAME

None
Value:
2                                                                     
      

AI_NUMERICHOST

None
Value:
4                                                                     
      

AI_PASSIVE

None
Value:
1                                                                     
      

AI_V4MAPPED

None
Value:
8                                                                     
      

CAPI

None
Value:
<PyCObject object at 0xb79f1410>                                       
      

EAI_ADDRFAMILY

None
Value:
-9                                                                    
      

EAI_AGAIN

None
Value:
-3                                                                    
      

EAI_BADFLAGS

None
Value:
-1                                                                    
      

EAI_FAIL

None
Value:
-4                                                                    
      

EAI_FAMILY

None
Value:
-6                                                                    
      

EAI_MEMORY

None
Value:
-10                                                                   
      

EAI_NODATA

None
Value:
-5                                                                    
      

EAI_NONAME

None
Value:
-2                                                                    
      

EAI_SERVICE

None
Value:
-8                                                                    
      

EAI_SOCKTYPE

None
Value:
-7                                                                    
      

EAI_SYSTEM

None
Value:
-11                                                                   
      

INADDR_ALLHOSTS_GROUP

None
Value:
-536870911                                                            
      

INADDR_ANY

None
Value:
0                                                                     
      

INADDR_BROADCAST

None
Value:
-1                                                                    
      

INADDR_LOOPBACK

None
Value:
2130706433                                                            
      

INADDR_MAX_LOCAL_GROUP

None
Value:
-536870657                                                            
      

INADDR_NONE

None
Value:
-1                                                                    
      

INADDR_UNSPEC_GROUP

None
Value:
-536870912                                                            
      

IPPORT_RESERVED

None
Value:
1024                                                                  
      

IPPORT_USERRESERVED

None
Value:
5000                                                                  
      

IPPROTO_AH

None
Value:
51                                                                    
      

IPPROTO_DSTOPTS

None
Value:
60                                                                    
      

IPPROTO_EGP

None
Value:
8                                                                     
      

IPPROTO_ESP

None
Value:
50                                                                    
      

IPPROTO_FRAGMENT

None
Value:
44                                                                    
      

IPPROTO_GRE

None
Value:
47                                                                    
      

IPPROTO_HOPOPTS

None
Value:
0                                                                     
      

IPPROTO_ICMP

None
Value:
1                                                                     
      

IPPROTO_ICMPV6

None
Value:
58                                                                    
      

IPPROTO_IDP

None
Value:
22                                                                    
      

IPPROTO_IGMP

None
Value:
2                                                                     
      

IPPROTO_IP

None
Value:
0                                                                     
      

IPPROTO_IPIP

None
Value:
4                                                                     
      

IPPROTO_IPV6

None
Value:
41                                                                    
      

IPPROTO_NONE

None
Value:
59                                                                    
      

IPPROTO_PIM

None
Value:
103                                                                   
      

IPPROTO_PUP

None
Value:
12                                                                    
      

IPPROTO_RAW

None
Value:
255                                                                   
      

IPPROTO_ROUTING

None
Value:
43                                                                    
      

IPPROTO_RSVP

None
Value:
46                                                                    
      

IPPROTO_TCP

None
Value:
6                                                                     
      

IPPROTO_TP

None
Value:
29                                                                    
      

IPPROTO_UDP

None
Value:
17                                                                    
      

IPV6_CHECKSUM

None
Value:
7                                                                     
      

IPV6_DSTOPTS

None
Value:
4                                                                     
      

IPV6_HOPLIMIT

None
Value:
8                                                                     
      

IPV6_HOPOPTS

None
Value:
3                                                                     
      

IPV6_JOIN_GROUP

None
Value:
20                                                                    
      

IPV6_LEAVE_GROUP

None
Value:
21                                                                    
      

IPV6_MULTICAST_HOPS

None
Value:
18                                                                    
      

IPV6_MULTICAST_IF

None
Value:
17                                                                    
      

IPV6_MULTICAST_LOOP

None
Value:
19                                                                    
      

IPV6_NEXTHOP

None
Value:
9                                                                     
      

IPV6_PKTINFO

None
Value:
2                                                                     
      

IPV6_RTHDR

None
Value:
5                                                                     
      

IPV6_RTHDR_TYPE_0

None
Value:
0                                                                     
      

IPV6_UNICAST_HOPS

None
Value:
16                                                                    
      

IPV6_V6ONLY

None
Value:
26                                                                    
      

IP_ADD_MEMBERSHIP

None
Value:
35                                                                    
      

IP_DEFAULT_MULTICAST_LOOP

None
Value:
1                                                                     
      

IP_DEFAULT_MULTICAST_TTL

None
Value:
1                                                                     
      

IP_DROP_MEMBERSHIP

None
Value:
36                                                                    
      

IP_HDRINCL

None
Value:
3                                                                     
      

IP_MAX_MEMBERSHIPS

None
Value:
20                                                                    
      

IP_MULTICAST_IF

None
Value:
32                                                                    
      

IP_MULTICAST_LOOP

None
Value:
34                                                                    
      

IP_MULTICAST_TTL

None
Value:
33                                                                    
      

IP_OPTIONS

None
Value:
4                                                                     
      

IP_RECVOPTS

None
Value:
6                                                                     
      

IP_RECVRETOPTS

None
Value:
7                                                                     
      

IP_RETOPTS

None
Value:
7                                                                     
      

IP_TOS

None
Value:
1                                                                     
      

IP_TTL

None
Value:
2                                                                     
      

MSG_CTRUNC

None
Value:
8                                                                     
      

MSG_DONTROUTE

None
Value:
4                                                                     
      

MSG_DONTWAIT

None
Value:
64                                                                    
      

MSG_EOR

None
Value:
128                                                                   
      

MSG_OOB

None
Value:
1                                                                     
      

MSG_PEEK

None
Value:
2                                                                     
      

MSG_TRUNC

None
Value:
32                                                                    
      

MSG_WAITALL

None
Value:
256                                                                   
      

NI_DGRAM

None
Value:
16                                                                    
      

NI_MAXHOST

None
Value:
1025                                                                  
      

NI_MAXSERV

None
Value:
32                                                                    
      

NI_NAMEREQD

None
Value:
8                                                                     
      

NI_NOFQDN

None
Value:
4                                                                     
      

NI_NUMERICHOST

None
Value:
1                                                                     
      

NI_NUMERICSERV

None
Value:
2                                                                     
      

PACKET_BROADCAST

None
Value:
1                                                                     
      

PACKET_FASTROUTE

None
Value:
6                                                                     
      

PACKET_HOST

None
Value:
0                                                                     
      

PACKET_LOOPBACK

None
Value:
5                                                                     
      

PACKET_MULTICAST

None
Value:
2                                                                     
      

PACKET_OTHERHOST

None
Value:
3                                                                     
      

PACKET_OUTGOING

None
Value:
4                                                                     
      

PF_PACKET

None
Value:
17                                                                    
      

SHUT_RD

None
Value:
0                                                                     
      

SHUT_RDWR

None
Value:
2                                                                     
      

SHUT_WR

None
Value:
1                                                                     
      

SOCK_DGRAM

None
Value:
2                                                                     
      

SOCK_RAW

None
Value:
3                                                                     
      

SOCK_RDM

None
Value:
4                                                                     
      

SOCK_SEQPACKET

None
Value:
5                                                                     
      

SOCK_STREAM

None
Value:
1                                                                     
      

SOL_IP

None
Value:
0                                                                     
      

SOL_SOCKET

None
Value:
1                                                                     
      

SOL_TCP

None
Value:
6                                                                     
      

SOL_UDP

None
Value:
17                                                                    
      

SOMAXCONN

None
Value:
128                                                                   
      

SO_ACCEPTCONN

None
Value:
30                                                                    
      

SO_BROADCAST

None
Value:
6                                                                     
      

SO_DEBUG

None
Value:
1                                                                     
      

SO_DONTROUTE

None
Value:
5                                                                     
      

SO_ERROR

None
Value:
4                                                                     
      

SO_KEEPALIVE

None
Value:
9                                                                     
      

SO_LINGER

None
Value:
13                                                                    
      

SO_OOBINLINE

None
Value:
10                                                                    
      

SO_RCVBUF

None
Value:
8                                                                     
      

SO_RCVLOWAT

None
Value:
18                                                                    
      

SO_RCVTIMEO

None
Value:
20                                                                    
      

SO_REUSEADDR

None
Value:
2                                                                     
      

SO_SNDBUF

None
Value:
7                                                                     
      

SO_SNDLOWAT

None
Value:
19                                                                    
      

SO_SNDTIMEO

None
Value:
21                                                                    
      

SO_TYPE

None
Value:
3                                                                     
      

SSL_ERROR_EOF

None
Value:
8                                                                     
      

SSL_ERROR_INVALID_ERROR_CODE

None
Value:
9                                                                     
      

SSL_ERROR_SSL

None
Value:
1                                                                     
      

SSL_ERROR_SYSCALL

None
Value:
5                                                                     
      

SSL_ERROR_WANT_CONNECT

None
Value:
7                                                                     
      

SSL_ERROR_WANT_READ

None
Value:
2                                                                     
      

SSL_ERROR_WANT_WRITE

None
Value:
3                                                                     
      

SSL_ERROR_WANT_X509_LOOKUP

None
Value:
4                                                                     
      

SSL_ERROR_ZERO_RETURN

None
Value:
6                                                                     
      

TCP_CORK

None
Value:
3                                                                     
      

TCP_DEFER_ACCEPT

None
Value:
9                                                                     
      

TCP_INFO

None
Value:
11                                                                    
      

TCP_KEEPCNT

None
Value:
6                                                                     
      

TCP_KEEPIDLE

None
Value:
4                                                                     
      

TCP_KEEPINTVL

None
Value:
5                                                                     
      

TCP_LINGER2

None
Value:
8                                                                     
      

TCP_MAXSEG

None
Value:
2                                                                     
      

TCP_NODELAY

None
Value:
1                                                                     
      

TCP_QUICKACK

None
Value:
12                                                                    
      

TCP_SYNCNT

None
Value:
7                                                                     
      

TCP_WINDOW_CLAMP

None
Value:
10                                                                    
      

has_ipv6

None
Value:
False