0
点赞
收藏
分享

微信扫一扫

TCP编程中的客户端与服务端的通信实现

我是小瘦子哟 2022-04-02 阅读 51
python

客户端

from socket import *
from threading import Thread
#客户端

def rece_data():
    while 1:
        # 接受服务端消息
        rece_data = client_socket.recv(1024)
        rece_content = rece_data.decode('utf-8')
        print(f"服务端说:{rece_content}")
        if rece_content == 'end':
            print('结束接受消息')
            break

def send_data():
    while 1:
        # 给服务端发消息
        msg = input('>')
        client_socket.send(msg.encode('utf-8'))
        if msg == 'end':
            break
if __name__ == '__main__':
    client_socket = socket(AF_INET, SOCK_STREAM)
    client_socket.connect(('127.0.0.1', 8899))
    t1 = Thread(target=rece_data)
    t2 = Thread(target=send_data)
    t1.start()
    t2.start()
    t1.join()
    t2.join()

    client_socket.close()

服务端

from socket import *
from threading import Thread
#服务端

def rece_data():
    while 1:
        rece_data = client_socket.recv(1024)
        rece_content = rece_data.decode('utf-8')
        print(f"客户端说:{rece_content},from{client_info}")
        if rece_content == 'end':
            print('结束接受消息')
            break
def send_data():
    while 1:
        msg = input('>')
        client_socket.send(msg.encode('utf-8'))
        if msg == 'end':
            # print('结束接受消息')
            break

if __name__ == '__main__':
    server_socket = socket(AF_INET, SOCK_STREAM)  # 创建TCP套接字
    server_socket.bind(('127.0.0.1', 8899))  # 本机监听8899端口
    server_socket.listen(5)
    print('等待接受数据!')
    client_socket, client_info = server_socket.accept()
    print('一个客户端建立链接成功')
    t1 = Thread(target=rece_data)
    t2 = Thread(target=send_data)
    t1.start()
    t2.start()
    t1.join()
    t2.join()

    client_socket.close()
    server_socket.close()

ps:要运行以上两个文件,必须先运行服务端的文件,再运行客户端的文件才能连接到服务端

举报

相关推荐

0 条评论