Python3 socket 实现即时通讯脚本,threading 多线程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3 socket 实现即时通讯脚本,threading 多线程相关的知识,希望对你有一定的参考价值。

------------------------------------------------服务端代码--------------------------------------

__author__ = "托尼老师"

"""
即时通讯原理 
@@@ 服务端代码

"""

from socket import *
import threading

ip = ‘0.0.0.0‘
port =8888
# 定义 socket 参数

Server = socket(AF_INET,SOCK_STREAM)
Server.bind((ip,port))
Server.listen()
print("[*] SocketServer 正在监听...")

# 接受函数
def  recvs():
    while 1:
        print(‘ [*] 客户端说: %s ‘% client.recv(1024).decode(‘utf-8‘))

#发送函数
def  sends():
    while 1:
        say = bytes(input(‘ [*] 我说: ‘) , encoding=‘utf-8‘)
        client.send(say)
# 堵塞接受请求

client,client_ip  = Server.accept()
print(client_ip[0] +‘:‘+str(client_ip[1])+‘ 连接成功!‘ )

# 创建接受线程
receive = threading.Thread(target =recvs ,args=() )
receive.start()
# 创建发送线程
send = threading.Thread(target =sends ,args=() )
send.start()

------------------------------------------------客户端代码--------------------------------------

__author__ = "托尼老师"

"""
即时通讯原理 
@@@ 客户端代码

"""

from socket import *
import threading

ip,port =‘127.0.0.1‘,8888

Client = socket(AF_INET,SOCK_STREAM)
Client.connect((ip,port))

def  sends() -> ‘发送函数‘:
    while 1:

        say = bytes(input("[*]我说: "),encoding=‘utf-8‘)
        Client.send(say)
def recvs() -> ‘接受函数‘:
    while 1:

        print(‘[*] 服务端说: %s  ‘ % Client.recv(1024).decode(‘utf-8‘))

receive = threading.Thread(target =recvs ,args=() )
receive.start()
# 创建发送线程
send = threading.Thread(target =sends ,args=() )
send.start()

先执行 服务端代码,再执行客户端代码,可以实现基本通讯功能。仅供参考!欢迎指出优化!

以上是关于Python3 socket 实现即时通讯脚本,threading 多线程的主要内容,如果未能解决你的问题,请参考以下文章

java socket实现简单即时通讯

socket.io 和 reactjs 实现即时通讯

用于WEB端的即时通讯的框架Socket.IO

socket.io实现即时通讯消息推送的思路

即时通讯开发socket.io如何实现消息推送

Socket.IO介绍:支持WebSocket用于WEB端的即时通讯的框架