
SOCKET
---小白121的记录笔记
简单的tcp即使通讯程序
socket通讯服务器:
from socket import * HOST = '' PORT = 12182 BUFSIZ = 1024 ADDR = (HOST,PORT) dialogue_serivce = socket(AF_INET,SOCK_STREAM) dialogue_serivce.bind(ADDR) dialogue_serivce.listen(5) try: while True: print('程序开始运行。。。') dialogue_clisock, ADDR = dialogue_serivce.accept() print('接收到来自%s的请求'%(ADDR,)) while True: data = dialogue_clisock.recv(BUFSIZ) #接收客户机发来的信息 if not data: break else: print('\n来自服务器%s的通讯: '%HOST,data.decode('utf-8')) #打印客户机对话信息 accept_txt = input(''' ------------------------------------ 通讯服务器: ''') dialogue_clisock.send(accept_txt.encode('utf-8')) #格式化信息并发给客户机 dialogue_serivce.close() except OSError: #更加优雅的报错退出方式 dialogue_serivce.close()
socket通讯客户机:
from socket import * HOST = 'localhost' PORT = 12182 BUFSIZ = 1024 ADD = (HOST,PORT) tcpClisock = socket(AF_INET,SOCK_STREAM) try: #若服务器未开则关闭连接 tcpClisock.connect(ADD) except ConnectionRefusedError: tcpClisock.close() print('\n未检测出服务器 %s '%HOST) try: while True: data = input(''' ----------------------------------- 通讯客户机: ''') if not data: break tcpClisock.send(data.encode('utf-8')) #发送客户机信息 data = tcpClisock.recv(BUFSIZ) #接收服务器信息 if not data: break print('\n来自%s的回复:'%HOST,data.decode('utf-8')) #打印客户机信息 except OSError: tcpClisock.close()
以下为测试结果: