python多进程关闭socket_Python并发编程-多进程socketserver简易版

普通版的socketserver

#server.py

import socket

sk = socket.socket()

sk.bind(('127.0.0.1',8080))#建立连接

sk.listen() #打开监听

while True:

conn,addr = sk.accept() #接收到一个连接和一个地址

ret = 'hi'.encode('utf-8')

conn.send(ret)

msg = conn.recv(1024).decode('utf-8')

print(msg)

conn.close()

sk.close()

#Client.py

import socket

sk = socket.socket()

sk.connect(('127.0.0.1',8080))

msg = sk.recv(1024).decode('utf-8')

print(msg)

msg2 = input('>>>').encode('utf-8')

sk.send(msg2)

sk.close()

简易多进程socketserver

###server.py

import socket

from multiprocessing import Process

#主要的不同是利用了函数和子进程,这里建立了函数

def serve(conn):

ret = 'hi'.encode('utf-8')

conn.send(ret)

msg = conn.recv(1024).decode('utf-8')

print(msg)

conn.close()

if __name__ == '__main__':

sk = socket.socket()

sk.bind(('127.0.0.1',8080))#建立连接

sk.listen() #打开监听

while True:

conn,addr = sk.accept() #接收到一个连接和一个地址

#开启子进程

p = Process(target=serve,args =(conn,))

p.start()

sk.close()

###client.py

import socket

sk = socket.socket()

sk.connect(('127.0.0.1',8080))

msg = sk.recv(1024).decode('utf-8')

print(msg)

msg2 = input('>>>').encode('utf-8')

sk.send(msg2)

sk.close()

python并发编程&多进程(二)

前导理论知识见:python并发编程&多进程(一) 一 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_cou ...

python并发编程&多进程(一)

本篇理论居多,实际操作见:  python并发编程&多进程(二) 一 什么是进程 进程:正在进行的一个过程或者说一个任务.而负责执行任务则是cpu. 举例(单核+多道,实现多个进程的并发执行) ...

Python并发编程-多进程

Python并发编程-多进程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.多进程相关概念 由于Python的GIL全局解释器锁存在,多线程未必是CPU密集型程序的好的选择. ...

python 并发编程 多进程 目录

python multiprocessing模块 介绍 python 开启进程两种方法 python 并发编程 查看进程的id pid与父进程id ppid python 并发编程 多进程 Proce ...

python 并发编程 多进程 队列目录

python 并发编程 多进程 队列 python 并发编程 多进程 生产者消费者模型介绍 python 并发编程 多进程 生产者消费者模型总结 python 并发编程 多进程 JoinableQue ...

python 并发编程 多进程 互斥锁 目录

python 并发编程 多进程 互斥锁 模拟抢票 互斥锁与join区别

python 并发编程 多进程 生产者消费者模型介绍

一 生产者消费者模型介绍 为什么要使用生产者消费者模型 生产者指的是生产数据的任务,消费者指的是处理数据的任务, 生产数据目的,是为了给消费者处理. 在并发编程中,如果生产者处理速度很快,而消费者处理 ...

python 并发编程-- 多进程

一 multiprocessing 模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程 ...

python 并发编程(socketserver)

下面的例子是简单的ssh 登录,其实也就是客户端把指令发送给服务器.服务器把结果返还给客户端,客户端再在终端展现 服务端代码: #Author:BigBao #Date:2018/7/18 # 我们之 ...

随机推荐

KBMMW 4.93.10 win64 一个BUG 修正

经常有人提到kbmmw 4.93.10 的64 位版本没有32位版本稳定. 经过官方确认,是delphi 编译器生成64 位代码内存偏移地址的错误. 在kbmMWGlobal.pas 中 有一个函数k ...

java编写冒泡排序

int[] arry={7,1,6,5,3,4,9,8,2}; for(int a=0;a

Robotium编写测试用例如何模拟Junit4的BeforeClass和AfterClass方法1 - 条件判断法

本文来源于:http://blog.csdn.net/zhubaitian/article/details/39293883 Robotium的测试类ActivityInstrumentationTe ...

CSS_网站配色参考方案

http://www.cnblogs.com/QLeelulu/archive/2008/04/04/1136974.html   Shiny silver [#EEEEEE]       Reddi ...

[置顶] 程序员必知(三):一分钟知道URI编码(encodeURI)

因为浏览器会用一些特殊的字符作为特定的意义,所以在要传输的内容上如果有这些特殊的字符的话,就需要对其进行转义才能正确传输,如以下字符为发送时候的关键字,即特殊字符 ;/?:@&=+$,# 所以 ...

MySQL优化三(InnoDB优化)

body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-top: 10 ...

如何在Oracle官网下载历史版本JDK

打开Oracle官网,准备下载java JDK(下载时需要使用注册用户登陆,可以免费注册) 官网地址:http://www.oracle.com/ 2 鼠标悬停Downloads,会出现相关内容,如下 ...

go get获取gitlab私有仓库的代码

目录 目录 1.Gitlab的搭建 2.如何通过go get,获取Gitlab的代码 目录 1.Gitlab的搭建   在上一篇文章中,已经介绍了如何搭建Gitlab Https服务

React事件绑定与解绑

React中事件分类 React中事件绑定分为两种: 1.直接添加在React元素上的事件,这是React在基于Virtual DOM的基础上实现的符合w3c规范的合成事件(SyntheticEven ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值