2.10.1 TCP Stream Objects

When set to a value different than None this should refer to a function with two integer parameters: an event code and a detail. This function will be called upon network-generated events such as urgent data arrival. Macintosh documentation calls this the asynchronous service routine. In addition, it is called with eventcode MACTCP.PassiveOpenDone when a PassiveOpen() completes. This is a Python addition to the MacTCP semantics. It is safe to do further calls from asr.

PassiveOpen (port)
Wait for an incoming connection on TCP port port (zero makes the system pick a free port). The call returns immediately, and you should use wait() to wait for completion. You should not issue any method calls other than wait(), isdone() or GetSockName() before the call completes.

wait ()
Wait for PassiveOpen() to complete.

isdone ()
Return 1 if a PassiveOpen() has completed.

GetSockName ()
Return the TCP address of this side of a connection as a 2-tuple (host, port), both integers.

ActiveOpen (lport, host, rport)
Open an outgoing connection to TCP address (host, rport). Use local port lport (zero makes the system pick a free port). This call blocks until the connection has been established.

Send (buf, push, urgent)
Send data buf over the connection. push and urgent are flags as specified by the TCP standard.

Rcv (timeout)
Receive data. The call returns when timeout seconds have passed or when (according to the MacTCP documentation) ``a reasonable amount of data has been received''. The return value is a 3-tuple (data, urgent, mark). If urgent data is outstanding Rcv will always return that before looking at any normal data. The first call returning urgent data will have the urgent flag set, the last will have the mark flag set.

Close ()
Tell MacTCP that no more data will be transmitted on this connection. The call returns when all data has been acknowledged by the receiving side.

Abort ()
Forcibly close both sides of a connection, ignoring outstanding data.

Status ()
Return a TCP status object for this stream giving the current status (see below).

See About this document... for information on suggesting changes.