首页 技术 正文
技术 2022年11月16日
0 收藏 614 点赞 4,314 浏览 1292 个字
#!/usr/local/bin/python3.5
#coding:utf-8import sys
import socket
import argparsedef main():
#setup argument Parsing
parser = argparse.ArgumentParser(description='socket error examples')
parser.add_argument('--host', action='store', dest='host', required=False)
parser.add_argument('--port',action='store', dest='port', type=int, required=False)
parser.add_argument('--file', action='store', dest='file', required=False)
given_args=parser.parse_args()
host = given_args.host
port = given_args.port
filename = given_args.file #first try-except block --create socket
try:
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error as e:
print("error creating socket:" % e)
sys.exit(1) #Second try-except block -- connect to given host/PORT
try:
s.connect((host, port))
except socket.gaierror as e:
print("address-related error connectiong to server : %s" % e )
sys.exit(1)
except socket.error as e:
print("connection error: %s" % e)
sys.exit(1) #third try-except block -- sending data
try:
s.sendall(("GET %s HTTP/1.0\r\n\r\n" % filename).encode(encoding='utf-8'))
except socket.error as e:
print("Error sending data: %s" % e)
sys.exit(1) while 1:
#Fourth tr-except block --waiting to receive data from remote host
try:
buf = str(s.recv(2048), 'utf-8')
except socket.error as e:
print("error receiving data: %s" % e)
sys.exit(1)
if not len(buf):
break
# write the received data
sys.stdout.write(buf) if __name__ == '__main__':
main()

展示

python之优雅处理套接字错误

end!

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,965
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,486
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,331
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,114
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,747
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,781