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
投稿

猜你喜欢

  • 利用ASP.NET MVC和Bootstrap快速搭建响应式个人博客站(一)

    2023-07-06 23:47:39
  • python 两种方法修改文件的创建时间、修改时间、访问时间

    2023-08-10 03:06:52
  • 详解如何在cmd命令窗口中搭建简单的python开发环境

    2021-08-21 08:03:08
  • Python logging简介详解

    2022-05-12 09:27:02
  • pytorch 限制GPU使用效率详解(计算效率)

    2022-01-24 06:55:53
  • [翻译]标记语言和样式手册 Chapter 10 应用CSS

    2008-02-02 18:44:00
  • python中@property的作用和getter setter的解释

    2022-08-14 21:12:39
  • Python详细介绍模型封装部署流程

    2023-03-27 00:49:32
  • 两个不太常用的 CSS Hack

    2008-06-27 12:49:00
  • 正则表达式的基本概念

    2007-10-17 21:07:00
  • FrontPage服务器扩展

    2008-03-05 13:05:00
  • Python中私有属性的定义方式

    2023-11-01 16:47:17
  • python格式化字符串的实战教程(使用占位符、format方法)

    2023-02-01 22:20:21
  • python 读写txt文件 json文件的实现方法

    2022-01-12 19:42:50
  • 设计师的底线

    2009-05-06 12:51:00
  • 用ReactJS和Python的Flask框架编写留言板的代码示例

    2021-09-29 07:33:14
  • 巧用overflow属性解决中间间距问题

    2007-12-08 20:26:00
  • jQuery+php简单实现全选删除的方法

    2023-11-05 20:23:38
  • numpy中np.c_和np.r_的用法解析

    2021-02-09 17:54:06
  • 用Python监控你的朋友都在浏览哪些网站?

    2022-10-20 00:37:07
  • asp之家 网络编程 m.aspxhome.com