python 的socket客户端使用,和异常处理
欢迎使用Markdown编辑器
与c++通信服务端
reclist = ''
try:
socket.setdefaulttimeout(9)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
s.connect(('127.0.0.1', 8080))# 这里事服务器的地址和端口
data = {"sys": "2", "name": "dd"}
s.sendall(json.dumps(data, ensure_ascii=False).encode('UTF-8'))
rec = s.recv(40)
print(rec.decode('utf-8'), "接收成功")
s.sendall(json.dumps(msg, ensure_ascii=False).encode('UTF-8'))
a = s.recv(16)
print(a.decode('utf-8'), "接收成功")
s.settimeout(10)
while True:
data = s.recv(10000)
data = data.decode('utf-8')
reclist += data
print(reclist)
print("#######################################")
if len(data) == 0:
break
print('hh')
except ConnectionRefusedError as e:
contexts = {'isSuccess': False, 'responseData': {'data': []}, 'message': e}
return HttpResponse(json.dumps(contexts, ensure_ascii=False))
except ConnectionResetError as f:
contexts = {'isSuccess': False, 'responseData': {'data': []}, 'message': f}
return HttpResponse(json.dumps(contexts, ensure_ascii=False))
except socket.timeout:
contexts = {'isSuccess': False, 'responseData': {'data': []}, 'message': '服务器超时'}
return HttpResponse(json.dumps(contexts, ensure_ascii=False))
return reclist