从零开始学习--socket 6月26日




SOCKET


                                                                                                                        ---小白121的记录笔记

简单的tcp即使通讯程序

PS:6月25日有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()

以下为测试结果:




猜你喜欢

转载自blog.csdn.net/qq_42184699/article/details/80821354