码迷,mamicode.com
首页 > 编程语言 > 详细

python网络编程,通过服务名称和会话类型(tcp,udp)获取端口号,简单的异常处理

时间:2017-10-02 00:50:46      阅读:262      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!