python之优雅处理套接字错误
2016-09-21 14:34
274 查看
#!/usr/local/bin/python3.5 #coding:utf-8 import sys import socket import argparse def 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()
展示
end!
相关文章推荐
- Python网络编程——处理套接字错误
- Python进阶 错误处理
- Python进阶08 错误处理
- python 处理中文时出现的错误'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)" 解决方法
- Error handling and Go go 优雅的错误处理
- 【python coding 3:字符串处理】python实现去除字符串中的错误
- ASP.NET DEVELOPMENT SERVER 未能开始侦听端口xxxxx以一种访问权限不允许的方式做了一个访问套接字的尝试--错误处理
- Python学习-18.Python中的错误处理(三)
- [Head First Python]3. 文件与异常:处理错误
- Python进阶08 错误处理
- Python学习-16.Python中的错误处理
- 让代码更优雅1:清晰的错误处理
- 套接字的recv返回错误和处理
- python easy_install 发生Unable to find vcvarsall.bat错误的处理方法
- python 过滤xml非法字符 :not well-formed (invalid token)错误处理
- python 处理中文时出现的错误'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)" 解决方法
- python xml处理中文时出现的错误
- python处理字符串时出现的错误'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)" 解决方法
- Python错误处理-ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MO
- Python学习-17.Python中的错误处理(二)