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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python网络编程,通过服务名称和会话类型(tcp,udp)获取端口号,简单的异常处理相关的知识,希望对你有一定的参考价值。

作为一个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)获取端口号,简单的异常处理的主要内容,如果未能解决你的问题,请参考以下文章

使用xshell通过跳板机连接内网服务器平台

计算机网络参考模型

网络编程介绍

oracle 11g ocp 笔记-- 网络服务

[HCNA Cloud]FusionAccess架构原理

Avahi 能否通过网络发布两次相同的服务名称?