标签:net nec /usr 学python ... logs col 问题 argv
作为一个php程序员,同时有对网络方面感兴趣,php就比较蛋疼了,所以就抽了些时间看python
之前学python基础因为工作原因,断断续续的看了个基础,差不多是可以写代码了
最近在看《python网络编程基础》,准备是边实践边学习了,对书上的一个例子做了个复制
cli下运行的代码
1 #! /usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # ^设置编码:代码中有中午会导致编译错误 4 5 # 引入socket,sys模块 6 import socket,sys 7 8 # 接收cli传递的参数(服务名称) 9 ser_name = sys.argv[1] 10 11 print "Creating socket..." 12 # 创建socket 13 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 14 print "dine." 15 16 print "Looking up port number..." 17 18 # 异常捕获:cli传递的服务名称可能不正确,对这个异常处理 19 try: 20 # 通过服务名称和回话类型获取端口号 21 port = socket.getservbyname(ser_name,‘tcp‘) 22 except socket.error as e: 23 # 异常 24 print e 25 sys.exit(1) 26 27 print "done." 28 29 print "Connect to remote host %d..." % port 30 31 # 捕获异常:服务端可能没有开启对应服务,或者网络问题导致连接失败出现异常 32 try: 33 # 连接服务端 34 s.connect(("www.baidu.com",port)) 35 except socket.error as e: 36 # 异常 37 print "Strange error creating socket: %s" % e 38 sys.exit(1) 39 40 print "done." 41 42 # 成功建立连接后可以得到的信息 43 # 客户端发起连接的ip和端口 44 print "Connect from ",s.getsockname() 45 # 服务端的ip获取端口 46 print "Connect to ",s.getpeername()
python网络编程,通过服务名称和会话类型(tcp,udp)获取端口号,简单的异常处理
标签:net nec /usr 学python ... logs col 问题 argv
原文地址:http://www.cnblogs.com/hl540/p/7618328.html