一、Sockets, IPv4, and Simple Client/Server Programming
本章通过一些简单的案例介绍Python的核心网络库。 Python的套接字模块具有基于类和基于实例的实用程序。基于类和基于实例的方法之间的区别在于前者不需要套接字对象的实例。 例如,为了打印机器的IP地址,您不需要套接字对象。 相反,您可以只调用套接字的基于类的方法。 另一方面,如果需要将某些数据发送到服务器应用程序,则创建套接字对象以执行该显式操作更为直观。
例1:打印本机名与IP地址:
import socket
host_name = socket.gethostname()
host_ip = socket.gethostbyname(host_name)
print("Host name: ", host_name)
print("IP address:", host_ip)
扩展:__main__ 模块(注意是四个_)
Python不同于C/C++,程序执行并不需要主程序,如main(),而是文件自上而下的执行。
但很多Python程序中都有这样的语句
if __name__ == '__main__':
statements
这段代码的主要作用主要是让该python文件既可以独立运行,也可以当做模块导入到其他文件。当导入到其他的脚本文件的时候,此时__name__的名字其实是导入模块的名字,不是'__main__', main代码里面的就不执行了。
比如写一个程序test_main.py:
def fun():
print 'This is function'
if __name__ == '__main__':
fun()
print 'This is main'