python 多线程队列套接字

#server端import socket
import selectors
import threading
from threading import Thread
import time
import queue
selector = selectors.DefaultSelector()

socket_server = socket.socket()
address_server = (‘0.0.0.0‘,8080)
socket_server.bind(address_server)
socket_server.listen(1000)

q = queue.Queue(5)

class Producer(Thread):
    ‘‘‘进队
      初始化套接字
      套接字入队
    ‘‘‘
    def __init__(self, q, socket_server):
        super().__init__()
        self.q = q
        self.socket_server = socket_server

    def run(self):
        while True:
            connect,address = self.socket_server.accept()
            self.q.put(connect)

class Conmuer(Thread):
    ‘‘‘出队
      套接字出队
    ‘‘‘
    def __init__(self, q):
        super().__init__()
        self.q = q

    def run(self):
        while True:
            connect = self.q.get()
            print(type(connect))
            massage = connect.recv(1024)
            if massage:
                connect.send(massage)
            else:
                connect.close()
                # self.q.task_done()

producer = Producer(q, socket_server)
conmuer = Conmuer(q)
producer.start()
conmuer.start()
client端
import socket
import time

socket = socket.socket()
address = (‘127.0.0.1‘,8080)
socket.connect(address)
massage_send = input(‘请输入‘)
massage_send = bytes(massage_send, encoding=‘utf-8‘)
socket.send(massage_send)
massage_rev = str(socket.recv(1024), encoding=‘utf-8‘)
print(massage_rev)



原文地址:https://www.cnblogs.com/arrow-kejin/p/8993290.html

时间: 2024-11-25 13:15:49

python 多线程队列套接字的相关文章

Python网络编程(二)通过ThreadingMixIn实现多线程异步套接字程序

使用ThreadingMixIn类的特点: 在线程间共享应用的状态,与使用ForkingMixIn类相比避免进程间通信的复杂操作. 代码如下: 1 #! /usr/bin/python 2 3 import os 4 import socket 5 import threading 6 import SocketServer 7 8 SERVER_HOST = 'localhost' 9 SERVER_PORT = 0 10 BUF_SIZE = 1024 11 12 def client(ip

python之socket(套接字)

一.客户端/服务器架构 1.1基本概念 客户端/服务器架构即:C/S架构,包括: (1)硬件C/S架构(打印机) (2)软件C/S架构(Web服务器) 1.2举例 生活中的C/S架构:饭店为S端,所有食客C端 二.TCP/udp/osi七层 2.1TCP/UDP协议 TCP(Transmission Control Protocol)可靠的.面向连接的协议(eg:打电话).传输效率低全双工通信(发送缓存&接收缓存).面向字节流.使用TCP的应用:Web浏览器:电子邮件.文件传输程序. UDP(U

python使用原始套接字 解析原始ip头数据

使用底层套接字解码底层流量,是这次做的重点工作. 首先来捕获第一个包 # coding:utf-8import socket # 监听的主机IP host = "192.168.1.100" socket_protocol = socket.IPPROTO_ICMP sniffer = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket_protocol) sniffer.bind((host, 0)) sniffer.setso

4月23日 python学习总结 套接字UDP和 操作系统理论,多道理论

一.套接字UDP udp是无链接的,先启动哪一端都不会报错 UDP(user datagram protocol,用户数据报协议)是无连接的,面向消息的,提供高效率服务.不会使用块的合并优化算法,, 由于UDP支持的是一对多的模式,所以接收端的skbuff(套接字缓冲区)采用了链式结构来记录每一个到达的UDP包,在每个UDP包中就有了消息头(消息来源地址,端口等信息),这样,对于接收端来说,就容易进行区分处理了. 即面向消息的通信是有消息保护边界的.   服务器 #服务器 ss = socket

Python网络编程—套接字属性

socket套接字属性 [1] sockfd.type 套接字类型 [2] sockfd.family 套接字地址类型 [3] sockfd.getsockname() 获取套接字绑定地址 [4] sockfd.fileno() 获取套接字的文件描述符 [5] sockfd.getpeername() 获取连接套接字客户端地址 [6] sockfd.setsockopt(level,option,value)功能:设置套接字选项参数: level 选项类别 SOL_SOCKEToption 具体

python多线程队列使用

#线程1 -> 队列 -> 线程2 -> url_web # # # #!/usr/bin/env python #! coding=utf-8 #!by=xiaohe import Queue,threading,time,random from moniItems import mon import urllib2 from flask import Flask,request,json queueLock = threading.Lock() class t1(threading.

python基础--socket套接字、粘包问题

本地回环地址:127.0.0.1 简易版服务端: import socket ? server = socket.socket() # 就比如买了一个手机 server.bind(("127.0.0.1",8080)) # bind中绑定的是IP地址和端口号,注意是一个元组,就比如,将手机卡,插入了手机 server.listen(5) # 半连接池,最大等待连接数为5个,就比如开机 conn,address = server.accept() # 接听电话等着别人给你打电话 ? da

【Python网络编程】利用Python进行TCP、UDP套接字编程

之前实现了Java版本的TCP和UDP套接字编程的例子,于是决定结合Python的学习做一个Python版本的套接字编程实验. 流程如下: 1.一台客户机从其标准输入(键盘)读入一行字符,并通过其套接字将该行发送到服务器. 2.服务器从其连接套接字读取一行字符. 3.服务器将该行字符转换成大写. 4.服务器将修改后的字符串(行)通过连接套接字再发回给客户机. 5.客户机从其套接字中读取修改后的行,然后将该行在其标准输出(监视器)上打印出来. [TCP]服务器端代码: import socket

Linux 套接字编程中的 5 个隐患

在异构环境中开发可靠的网络应用程序 M. Tim Jones ([email protected]), 资深软件工程师, Emulex 简介: Socket API 是网络应用程序开发中实际应用的标准 API.尽管该 API 简单,但是开发新手可能会经历一些常见的问题.本文识别一些最常见的隐患并向您显示如何避免它们. 发布日期: 2005 年 10 月 08 日 级别: 中级 访问情况 : 13059 次浏览 评论: 0 (查看 | 添加评论 - 登录)  平均分 (34个评分)为本文评分 在