terom@6: """ terom@6: Sockect Object/API terom@6: """ terom@6: terom@6: ctypedef int socket_t terom@6: terom@8: cdef class socket : terom@6: """ terom@6: Represents a single OS-level socket terom@6: terom@30: >>> from qmsk.net.socket import af_inet terom@13: >>> from qmsk.net.socket.constants import * terom@13: terom@13: >>> s = socket(1337) terom@13: Traceback (most recent call last): terom@13: ... terom@13: OSError: [Errno 97] Address family not supported by protocol terom@13: terom@13: >>> s = socket(fd=1337) terom@6: >>> s.send('foo') terom@6: Traceback (most recent call last): terom@6: ... terom@6: OSError: [Errno 9] Bad file descriptor terom@13: terom@13: >>> s = socket(AF_INET, SOCK_STREAM) terom@30: >>> s.bind(af_inet.sockaddr_in('127.0.0.1', 1337)) terom@6: >>> s.listen(1) terom@6: >>> s.listen(0) terom@13: terom@13: >>> s = socket() terom@30: >>> s.connect(af_inet.sockaddr_in('127.0.0.1', 1338)) terom@8: Traceback (most recent call last): terom@8: ... terom@8: OSError: [Errno 111] Connection refused terom@8: terom@21: terom@21: >>> s1 = socket(AF_INET, SOCK_STREAM); s2 = socket(AF_INET, SOCK_STREAM) terom@21: >>> s1.listen(1); terom@21: >>> s2.connect(s1.getsockname()) terom@21: >>> s12, s12_addr = s1.accept() terom@21: >>> s12_addr == s12.getpeername() == s2.getsockname() terom@21: True terom@21: >>> s1.close(); s2.close() terom@21: terom@6: """ terom@6: terom@6: cdef readonly socket_t fd terom@6: