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()
以下为测试结果: