python socket
1 import socket 2 3 def get_constants(profix): 4 return dict((getattr(socket,n),n) 5 for n in dir(socket) 6 if n.startswith(profix) 7 ) 8 families=get_constants('AF_') 9 types=get_constants('SOCK_') 10 protocols=get_constants('IPPROTO_') 11 12 for response in socket.getaddrinfo('www.python.org','http'): #参数主机host和端口port都是必要参数,可选参数:family socktype proto flags 13 14 family, socktype,proto,canonname,sockaddr=response 15 16 print 'Family :', families[family] 17 print 'Type :',types[socktype] 18 print 'Protocol :',protocols[proto] 19 print 'Canonical name:',canonname 20 print 'Socket address:',sockaddr
这个程序展示了如何查找www.python.org的连接信息。family参数代表地址家族,可为AF_INET或AF_UNIX。AF_INET家族包括Internet地址,AF_UNIX家族用于同一台机器上的进程间通信。type参数代表套接字类型,可为SOCK_STREAM(流套接字)和SOCK_DGRAM(数据报套接字)。
IP 地址显示常用函数: socket.inet_aton(ip_string): 将ip地址的4段地址分别进行2进制转化,输出用16进制表示;mysql里面的函数是inet_aton
socket.inet_ntoa(packed_ip): 与上面的相反。
http://openexperience.iteye.com/blog/145701一个简单的socket编程 讲解了如何编写server