iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python socket 网络编程s
  • 200
分享到

python socket 网络编程s

网络编程pythonsocket 2023-01-31 05:01:24 200人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

Server端: import Socketimport selectors class Server(object):def init(self,sel,sock):self.sel = selself.sock = sock def r

Server端:

import Socket
import selectors

class Server(object):
def init(self,sel,sock):
self.sel = sel
self.sock = sock

def run(self,host,port):
    self.sock.bind((host,port))
    self.sock.listen(50)
    self.sock.setblocking(False)#设置非阻塞
    self.sel.reGISter(sock,selectors.EVENT_READ,self.accept)
    while True:
        events = self.sel.select()#默认是阻塞,有活动连接就返回活动连接列表
        for key,mask in events:
            callback = key.data#创建一个回调函数并获取
            callback(key.fileobj,mask)#调用回调函数

def accept(self,sock,mask):
    conn,addr = sock.accept()#已经就绪,等待接收
    print ('连接来自于{}'.fORMat(addr))
    conn.setblocking(False)
    # sock.send(str('thanks').decode())
    sel.register(conn,selectors.EVENT_READ,self.read)#注册事件

def read(self,conn,mask):
    data = conn.recv(1024)#就绪,等待接收数据
    if data:#判断是否有数据过来,有就执行
        print ('来自客户端:',data)
        conn.send(data)
    else:
        print ('准备关闭连接',conn)
        sel.unregister(conn)
        conn.close()

if name == 'main':
sel = selectors.DefaultSelector()#默认的选择方式
sock = socket.socket()
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,1)
host,port = '127.0.0.1',10011
server_obj = Server(sel,sock)
server_obj.run(host,port)

Client端:

import socket
import selectors
import random

sel = selectors.DefaultSelector()

def write(sock):
sock.send(str(random.randint(0,99)).encode('utf-8'))#发送必须是一个byts的数据,需要转码
sel.unregister(sock)#当发送成功后必须取消注册,用与接下来的接收(读)到数据的注册
sel.register(sock,selectors.EVENT_READ,read)#注册一个读的事件

def read(sock):
data = sock.recv(1024)
if not data:#判断接收到的数据是否为空数据
sel.unregister(sock)#当接收完成后,依然是取消注册
sock.close()#到此和服务器的请求基本处理完成,关闭套接字
return
print ('receiver server %s' %data)

for i in range(1000):#开1000个客户端测试
client = socket.socket()
client.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)#防止编辑器的每次运行端口冲突问题
client.connect(('localhost',10011))
sel.register(client,selectors.EVENT_WRITE,write)#注册一个写的事件,接下来处理发送(写)事件的处理

while True:
all_event = sel.select()
print (allevent)
for event,
in all_event:
sock = event.fileobj
callback = event.data#创建一个回调函数,方便触发事务执行
callback(sock)#调用刚创建的回调函数

--结束END--

本文标题: python socket 网络编程s

本文链接: https://www.lsjlt.com/news/188636.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python socket 网络编程s
    Server端: import socketimport selectors class Server(object):def init(self,sel,sock):self.sel = selself.sock = sock def r...
    99+
    2023-01-31
    网络编程 python socket
  • python网络编程--socket
    1.服务端1.1声明socket对象server=socket.socket(AF.INET,socket.SOCK_STREAM)1.2绑定ip、端口server.bind(localhost,6969)1.3开始监听server.lis...
    99+
    2023-01-31
    网络编程 python socket
  • Python—网络编程Socket
    Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数...
    99+
    2023-01-31
    网络编程 Python Socket
  • python网络编程-socket编程
    一、服务端和客户端 BS架构 (腾讯通软件:server+client) CS架构 (web网站)   C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开发   二、OSI七层模型 互联网协议按照功能不同分为...
    99+
    2023-01-31
    网络编程 python socket
  • [python网络编程]socket的简
    1 socket基本参数了解 1.在建立socket对象的时候,需要告诉系统两件事情1.1 通信的类型是什么(IPv4/IPv6等)1.2 使用的协议是什么?(TCP/UDP等) 2.各个通信类型和协议的标识2.1 IPv4:AF_INE...
    99+
    2023-01-31
    网络编程 python socket
  • 详解Python Socket网络编程
    Socket 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网页、QQ 聊天、...
    99+
    2022-06-04
    详解 网络编程 Python
  • python网络编程--socket简单
    python网络编程                                                                                                              ...
    99+
    2023-01-31
    网络编程 简单 python
  • python之Socket网络编程详解
    什么是网络? 网络是由节点和连线构成,表示诸多对象及其相互联系。在数学上,网络是一种图,一般认为专指加权图。网络除了数学定义外,还有具体的物理含义,即网络是从某种相同类型的实际问题中抽象出来的模型。在计算机...
    99+
    2022-06-04
    详解 网络编程 python
  • Python网络编程之socket与socketserver
    目录一、基于TCP协议的socket套接字编程1、套接字工作流程1、 服务端套接字函数2、 客户端套接字函数3、 公共用途的套接字函数4、 面向锁的套接字方法5、 面向文件的套接字的...
    99+
    2022-11-11
  • Python基础:网络编程socket基
    socket也叫套接字,是对各种协议的封装,实现收发数据。Python里socket工作过程:(图片来自网络)socket在Python中实际上是一个模块,实现发送和接收数据的功能。因为socket是一个类,所以只导入模块需要使用socke...
    99+
    2023-01-31
    网络编程 基础 Python
  • python网络-Socket之TCP编
    一、TCP简介 1、TCP介绍 TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议。 TCP通信需要经过创建连接、数据传送、终止...
    99+
    2023-01-31
    网络 python TCP
  • C#网络编程之Socket编程
    目录一:什么是SOCKET套接字分类二:SOCKET相关概念1、端口2、协议2.1 TCP:2.2 UDP三:socket一般应用模式:四:SOCKET通信基本流程图:服务器端:客户...
    99+
    2022-11-13
  • 网络编程知识-socket
    一、 C/S 架构:Client/Server   客户端/ 服务端   B/S 架构:Browser/Server  前端/ 服务端       网卡--> mac地址-->ip地址-->子网掩码-->网关--...
    99+
    2023-01-31
    网络编程 知识 socket
  • 网络编程-SOCKET开发
    网络编程-SOCKET开发 B/S架构        B指的是web(网页),S指的是Server(服务端软件) C/S架构        C指的是Client(客户端软件),S指的是Server(服务端软件) OSI七层模型设计的目...
    99+
    2023-01-31
    网络编程 SOCKET
  • python3网络编程之socket
      http://www.cnblogs.com/Bigtre/p/7261387.html...
    99+
    2023-01-31
    网络编程 socket
  • python资源库——socket网络编
    sockket简介 socekt又称为‘套接字’,用于描述IP和地址端口,是一个通信链路的句柄,应用程序通常通过套接字向网络发出请求或者应答网络请求。 socket起源于Unix,所以也遵从“一切皆文件”的基本哲学,对于文件,进行打开/读...
    99+
    2023-01-30
    资源库 网络 python
  • 【网络编程】网络编程 和 Socket 套接字认识
    ✨个人主页:bit me👇 ✨当前专栏:Java EE初阶👇 目 录 🎧一. 网络编程基础🎺1. 为什么需要网络编程?🎷2....
    99+
    2023-08-23
    网络 服务器 java
  • 【计算机网络】Socket编程
    文章目录 理解源IP地址和目的IP地址理解端口号和进程ID理解源端口号和目的端口号认识TCP协议认识UDP协议网络字节序socket编程接口socket网址查看socket常见APIUDP协议...
    99+
    2023-10-20
    网络 服务器
  • Java 网络编程socket编程等详解
    网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。java.net包中J2SE的API包含有类和接口,它们提供低层次的通信细节。你可以直接使用这些类和接口,来专注于解决问题,而不用关注通信细节。java.net包中...
    99+
    2023-05-31
    java 网络编程 socket编程
  • 网络编程之socket的运用
    一,socket用法 socket是什么 ? Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,...
    99+
    2023-01-30
    网络编程 socket
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作