Python3 socket即时通讯脚本实现代码实例(threading多线程)

作者:Angelo_start 时间:2022-05-20 08:52:17 

Python 提供了两个级别访问的网络服务。:

低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法。

高级别的网络服务模块 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。

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


__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()

先执行 服务端代码,再执行客户端代码,可以实现基本通讯功能

来源:https://blog.51cto.com/13876557/2499449

标签:Python,socket,脚本,threading
0
投稿

猜你喜欢

  • VS Code安装go插件失败原因分析以及解决方案

    2024-04-26 17:24:08
  • 大数据量分页存储过程效率测试附测试代码与结果

    2024-01-15 00:49:21
  • Python操作PDF实现制作数据报告

    2022-05-09 21:41:51
  • pytorch中的model.eval()和BN层的使用

    2023-09-21 17:06:10
  • Python+Tkinter实现简单的画图软件

    2021-11-11 17:25:45
  • FastApi+Vue+LayUI实现前后端分离的示例代码

    2024-04-30 10:22:48
  • python开启多个子进程并行运行的方法

    2022-02-21 12:33:30
  • Python的时间模块datetime详解

    2023-10-17 01:36:48
  • PHP动态生成javascript文件的2个例子

    2024-05-11 09:25:44
  • Python 异常处理实例详解

    2021-10-14 05:36:39
  • Oracle 删除大量表记录操作分析总结

    2024-01-22 20:36:12
  • PyQt 线程类 QThread使用详解

    2021-09-18 05:51:37
  • Dreamweaver行为体验

    2007-02-03 11:39:00
  • 如何优化Mysql千万级快速分页

    2024-01-17 03:37:47
  • Python提取支付宝和微信支付二维码的示例代码

    2021-04-08 19:38:42
  • Go语言实现的可读性更高的并发神库详解

    2023-07-20 08:03:49
  • python 切换root 执行命令的方法

    2021-10-16 22:33:43
  • Vue工程模板文件 webpack打包配置方法

    2024-05-10 14:15:40
  • 一个功能更强大的字符串格式化函数

    2008-04-30 17:44:00
  • Web2.0时代的网页视觉设计

    2008-07-13 14:07:00
  • asp之家 网络编程 m.aspxhome.com