网络编程中socket
Python 提供socket 类,通过实例化一个socket 对象,来进行不通主机之间的通信。通常分为server端和client端,通讯方式有TCP和UDP,在服务端开启监听s.listen并设置最搭连接数 ,可以监听主机和端口的状态,服务器端监听本机的端口使用s.bind进行绑定。在服务器监听端口的状态下,如果服务器接受连接,需使用s.accept进行接受客户端的连接,会获取客户端的hostname 和端口号。客户端可以向服务器端指定端口进行连接,如果指定的主机为域名,则需要通过DNS 查询,也可以指定IP地址,端口为服务器端的监听端口,连接时,客户端通过任意端口去连接(应该也可以指定端口)。服务器端和客户端连接成功以后,服务器和客户端可以进行数据交互,通过send和recv进行数据发送和接受(UDP连接,需要使用sendto/sendall[单播和组播,或者广播]和recvfrom),返回的数据再进一步处理。使用s.close进行关闭交互通道,以防安全问题。在连接期间可以使用getpeerhost获取对端的hostname 和端口,使用getsockname获取本端的hostname 和端口,一般返回形式为(IP,port)的元组。
参考
http://www.runoob.com/python/python-socket.html