标签:异常处理 base 集合 name 之间 学习总结 socket 文件夹 命名
一.模块二.包
1.什么是包
带着一个init文件的文件夹就是一个包,包里放其它模块
2.包的使用
import 包名 #导入一个包 意味着 执行这个包里的init方法
from...import
三.异常处理
try:
#可能出异常的代码
except 错误类型:
针对这个错误的处理方式
except Exception as e: # 万能异常 只能写在所有异常的最后
print(e)
else:
print(‘如果try中的代码没有发现异常 就执行‘)
finally:
print(‘无论如何都要执行‘)****
2.自定义异常
完成一个功能,在完成的过程中有一些特定的异常,这些异常不在内置的异常类型范围内
class ccException(BaseException):
def init(self,msg):
self.msg=msg
try:
raise ccException(‘类型错误‘)
except ccException as e:
print(e)
四:网络编程
1.机器上的一个程序 和另外一台机器上的一个程序之间的通信叫网络编程
server:
import socket
sk = socket.socket()
sk.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
sk.bind((‘127.0.0.1‘,8899))
sk.listen() # 开始监听别人的链接
while True:
conn,addr = sk.accept()# 三次握手的过程,阻塞
while True:
msg = input(‘>>>‘).encode(‘utf-8‘)
conn.send(msg) #发送
if msg == b‘q‘:break
ret = conn.recv(1024) #接收
if ret == b‘q‘:break
print(ret.decode(‘utf-8‘))
conn.close() #挥手
sk.close()
client:
import socket
sk = socket.socket()
sk.connect((‘127.0.0.1‘,8899))
while True:
msg = sk.recv(1024).decode(‘utf-8‘)
if msg == ‘q‘:break
print(msg)
inp = input(‘>>>‘)
sk.send(inp.encode(‘utf-8‘))
if inp == ‘q‘:break
sk.close()
2.粘包
粘包现象:由于tcp协议对数据有拆包和包的机制,所以导致数据与数据之间是没有条与条之间的限制的,接收到的数据就有可能粘在一起
粘包的解决:struct.pack struct.unpack
标签:异常处理 base 集合 name 之间 学习总结 socket 文件夹 命名
原文地址:http://blog.51cto.com/13544778/2150280