Python3 socket 双端通信

来源:互联网 发布:mac 删除文件夹 编辑:程序博客网 时间:2024/05/18 03:37

很简单的代码 客服端和服务器都开两个线程 一个负责收一个负责发

服务器

import socket,time,threadingdef tcprecv(sock, addr):    print('接受一个新连接来自 %s:%s...' % addr)    while True:        data = sock.recv(1024)        time.sleep(1)        if not data or data.decode('utf-8') == 'exit':            break        print('受到来自客户端的消息'+data.decode('utf-8'))      #  sock.send(('Hello, %s!' % data.decode('utf-8')).encode('utf-8'))    sock.close()    print('来自 %s:%s 的连接已关闭' % addr)def tcpsend(sock, addr):    while True:        datax = input('发送给客户端的消息:')        sock.send(datax.encode('utf-8'))    #创建一个基于IPv4和TCP协议的Sockets = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 监听端口:s.bind(('127.0.0.1', 12345))#调用listen()方法开始监听端口s.listen(5)print('等待连接...')while True:    # 接受一个新连接:    sock, addr = s.accept()    # 创建新线程来处理TCP连接:    t1 = threading.Thread(target=tcprecv, args=(sock, addr))    t2 = threading.Thread(target=tcpsend, args=(sock, addr))    t1.start()    t2.start()

客户端

import socket,time ,threadings = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 建立连接:s.connect(('127.0.0.1', 12345))# 接收欢迎消息:    # 发送数据:   # s.send(data)    #print(s.recv(1024).decode('utf-8'))def tcpsend():while 1:x = input('发送给服务器的内容')s.send(x.encode('utf-8'))time.sleep(5)def tcprecv():while 1:data = s.recv(1024)print('受到来自服务器的消息'+data.decode('utf-8'))while 1:# x = input('发送给服务器的内容')# s.send(x.encode('utf-8'))# recv = s.recv(1024)# print(recv.decode('utf-8'))t1 = threading.Thread(target = tcpsend)t2 = threading.Thread(target = tcprecv)t1.start()t2.start()


原创粉丝点击