开发者社区> 艾派森_> 正文

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

简介: TCP编程中的客户端与服务端的通信实现
+关注继续查看

客户端

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:要运行以上两个文件,必须先运行服务端的文件,再运行客户端的文件才能连接到服务端

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
一文了解HTTP、HTTPS、TCP、UDP、Websocket(论点:概念、通信流程、异同点、应用领域)
一文了解HTTP、HTTPS、TCP、UDP、Websocket(论点:概念、通信流程、异同点、应用领域)
131 0
linux网络编程(三) TCP通信时序与多进程/线程并发服务器的编写
linux网络编程(三) TCP通信时序与多进程/线程并发服务器的编写
125 0
socket库:Python实现TCP/IP客户和服务器通信
socket库:Python实现TCP/IP客户和服务器通信
208 0
套接字编程:TCP通信程序
套接字编程:TCP通信程序
69 0
NB-IoT 通信之 TCP 收发数据 | 学习笔记
快速学习 NB-IoT 通信之 TCP 收发数据
342 0
网络通信学习笔记(三)---TCP通信及文件上传
网络通信学习笔记(三)---TCP通信及文件上传
41 0
C++网络通信实例(TCP/IP协议,包括服务端与客户端通信)
C++网络通信实例(TCP/IP协议,包括服务端与客户端通信)
186 0
Android | TCP的C(Java|Android)/S(Java)通信实战经典聊天室案例(文末附本案例代码实现概述、观察者模式实现小结)
Android | TCP的C(Java|Android)/S(Java)通信实战经典聊天室案例(文末附本案例代码实现概述、观察者模式实现小结)
108 0
TCP通信过程的三次握手和四次握手
TCP通信过程的三次握手和四次握手
58 0
+关注
艾派森_
CSDN:https://blog.csdn.net/m0_64336780,有什么需求去csdn找我
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
TCP Cluster for mqtt技术实施方案
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载