iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python实现socket信息发送和监
  • 940
分享到

Python实现socket信息发送和监

信息Pythonsocket 2023-01-31 07:01:57 940人浏览 泡泡鱼

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

摘要

最近在研究boost c++库,用于工作中处理大规模高并发tcp连接数据响应,想测试,也可以用boost::asio库来写,但不利于测试代码的灵活修改。 于是就研究了一下python怎么做。学习过程中看到网上给出的代码示例虽然很基础易懂,

最近在研究boost c++库,用于工作中处理大规模高并发tcp连接数据响应,想测试,也可以用boost::asio库来写,但不利于测试代码的灵活修改。

于是就研究了一下python怎么做。学习过程中看到网上给出的代码示例虽然很基础易懂,对于Python零基础的人来说,完全可以稍微复杂些,配上一些注释,就能更多掌握一些Socket和python的基本语法知识。


于是根据我的使用需要,修改python的socket server和client的范例代码如下:


server端(单线程

# -*- coding: cp936 -*-
'''
建立一个python server,监听指定端口,
如果该端口被远程连接访问,则获取远程连接,然后接收数据,
并且做出相应反馈。
'''
if __name__=="__main__":
        import socket  
	print "Server is starting"
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  
        sock.bind(('localhost', 8001))  #配置soket,绑定IP地址和端口号
        sock.listen(5) #设置最大允许连接数,各连接和server的通信遵循FIFO原则
        print "Server is listenting port 8001, with max connection 5" 
        while True:  #循环轮询socket状态,等待访问
                
                connection,address = sock.accept()  
                try:  
                        connection.settimeout(50)
                        #获得一个连接,然后开始循环处理这个连接发送的信息
                        '''
                        如果server要同时处理多个连接,则下面的语句块应该用多线程来处理,
                        否则server就始终在下面这个while语句块里被第一个连接所占用,
                        无法去扫描其他新连接了,但多线程会影响代码结构,所以记得在连接数大于1时
                        下面的语句要改为多线程即可。
                        '''
                        while True:
                                buf = connection.recv(1024)  
                                print "Get value " +buf
                                if buf == '1':  
                                    print "send welcome"
                                    connection.send('welcome to server!')  
                                elif buf!='0':  
                                    connection.send('please Go out!') 
                                    print "send refuse"
                                else: 
                                    print "close"
                                   break  #退出连接监听循环
                except socket.timeout:  #如果建立连接后,该连接在设定的时间内无数据发来,则time out
                         print 'time out'

                print "closing one connection" #当一个连接监听循环退出后,连接可以关掉
                connection.close()  

           


client端,每隔3秒轮番发送不同的数据给server:

if __name__=="__main__":  
        import socket  
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  
        sock.connect(('localhost', 8001))  
        import time  
        flag = '1'
        while True: 
                time.sleep(3)  
                print 'send to server with value: '+ flag 
                sock.send(flag)  
                print sock.recv(1024) 
                flag = (flag=='1') and '2' or '1' #change to another type of value each time

                
        sock.close()  




 执行上面两段代码后,可以得到如下结果:

先执行server.py:

C:\Users\YanBo>D:\server.py
Server is starting
Server is listenting port 8001, with max connection 5

执行client后:

C:\Users\YanBo>D:\client.py
send to server with value: 1
welcome to server!
send to server with value: 2
please go out!
send to server with value: 1
welcome to server!
send to server with value: 2
please go out!

.....

server则相应输出:
Get value 1
send welcome
Get value 2
send refuse

.....


如果在linux下,用 

$ lsof -i:8001

则可以列出正在执行的server和client进程,因为他们占用了端口8001 

yanbo@yanbo-linux64-01:~$ lsof -i:8001
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF node NAME
python  2413 yanbo    3u  IPv4  12907      0t0  TCP localhost:8001 (LISTEN)
python  2413 yanbo    4u  IPv4  12910      0t0  TCP localhost:8001->localhost:38609 (ESTABLISHED)
python  2469 yanbo    3u  IPv4  12222      0t0  TCP localhost:38609->localhost:8001 (ESTABLISHED)

可以看出,进程2413是server.py 2469是client.py


--结束END--

本文标题: Python实现socket信息发送和监

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

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

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

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

下载Word文档
猜你喜欢
  • Python实现socket信息发送和监
    最近在研究boost C++库,用于工作中处理大规模高并发TCP连接数据响应,想测试,也可以用boost::asio库来写,但不利于测试代码的灵活修改。 于是就研究了一下python怎么做。学习过程中看到网上给出的代码示例虽然很基础易懂,...
    99+
    2023-01-31
    信息 Python socket
  • python实现邮箱发送信息
    本文实例为大家分享了python实现邮箱发送信息的具体代码,供大家参考,具体内容如下 一、SSL SSL 是指安全套接字层,简而言之,它是一项标准技术,可确保互联网连接安全,保护两个...
    99+
    2022-11-12
  • 使用python实现信息的接受和发送
    在python中实现一个信息接受与发送功能,具体方法如下:import socket import timeANY = '0.0.0.0'MCAST_ADDR = '224.168.2.9'MCAST_PORT = 1600 sock = ...
    99+
    2022-10-12
  • python实现半自动化发送微信信息
    本文实例为大家分享了python半自动化发送微信信息的具体代码,供大家参考,具体内容如下 相关第三方库 1.pyautogui 自动操作鼠标、键盘的第三方库 2.pyperclip...
    99+
    2022-11-12
  • python怎么实现微信自动发送信息
    要实现微信自动发送信息,可以使用Python的第三方库itchat来实现。itchat是一个开源的微信个人号接口,可以通过Pytho...
    99+
    2023-08-31
    python
  • Python实现向好友发送微信消息
    目录前言c语言发微信消息Python调用不用c编写dll如何发消息调用我们写入的机器码第一次优化第二次优化x86/x64 Call Jmp指令区别前言 原理:Windows逆向,通过...
    99+
    2022-11-11
  • python实现QQ定时发送新年祝福信息
    目录前言第一步 配置go-cqhttp第二步 获取好友列表第三步 发送祝福!总结前言 今晚就是新年夜啦,为了 刷一波存在感 送出我的祝福,同时让它看起来不像群发消...
    99+
    2022-11-13
  • Python基于钉钉监控发送消息提醒的实现
    目录一.使用前设置钉钉二.安全设置三.发送请求四.完整代码一.使用前设置钉钉 1.既然是使用钉钉消息提醒,那么第需要有钉钉。 2.第二步自定义机器人是群机器人,所以需要有个群。 3...
    99+
    2022-11-11
  • 教你利用python实现企业微信发送消息
    目录一、需要的参数二、获取通讯用户/组三、获取企业ID四、获取应用ID/密钥五、脚本代码六、效果一、需要的参数 1、通讯用户:touser 或 通讯组:toparty ...
    99+
    2022-11-12
  • Python实现向好友发送微信消息优化篇
    目录前言第二次优化第三次优化前言 之前说了怎么写机器码到内存,然后调用。现在说说怎么优化。 用Python发送微信消息给好友 第二次优化 再看一遍c语言的代码 void SendTe...
    99+
    2022-11-11
  • 使用python怎么实现企业微信发送消息
    这篇文章给大家介绍使用python怎么实现企业微信发送消息,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、需要的参数1、通讯用户:touser 或 通讯组:toparty  &...
    99+
    2023-06-15
  • Python基于钉钉监控发送消息提醒怎么实现
    这篇文章主要介绍“Python基于钉钉监控发送消息提醒怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python基于钉钉监控发送消息提醒怎么实现”文章能帮助大家解决问题。一.使用前设置钉钉既...
    99+
    2023-07-02
  • python实现定时发送qq消息
    因为生活中老是忘记各种事情,刚好又在学python,便突发奇想通过python实现提醒任务的功能(尽管TIM有定时功能),也可定时给好友、群、讨论组发送qq消息。其工作流程是:访问数据库提取最近计划——>根据数据内容(提醒时间、提醒...
    99+
    2023-01-31
    消息 python qq
  • python如何实现QQ定时发送新年祝福信息
    这篇文章将为大家详细讲解有关python如何实现QQ定时发送新年祝福信息,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果图:第一步 配置go-cqhttp简单来说,go-cqhttp就是自己搭建的一个Q...
    99+
    2023-06-29
  • 使用Python实现给企业微信发送消息功能
    目录一、概述二、python脚本三、企业微信设置1. 注册企业微信2. 点击进入管理后台3. 创建应用完成后4. 查看企业id5. 查看部门id四、测试脚本一、概述 本文将介绍如何使...
    99+
    2022-11-12
  • Android中使用socket通信实现消息推送的方法详解
    原理 最近用socket写了一个消息推送的demo,在这里和大家分享一下。 主要实现了:一台手机向另外一台手机发送消息,这两台手机可以随时自由发送文本消息进行通信,类似我们常用...
    99+
    2022-06-06
    方法 socket通信 socket Android
  • Python实现定时发送监控邮件
    目录一、自动定时任务运行详情二、开启POP3/SMTP服务三、发送邮件1 导入库2 设置邮件内容3 添加附件4 发送邮件5 邮件发送效果四、设置定时任务1 设置定时任务的具体步骤2 ...
    99+
    2022-11-12
  • Java聊天室之实现接收和发送Socket
    目录一、题目描述二、解题思路三、代码详解一、题目描述 题目实现:网络通信,实现信息的发送和接收。 二、解题思路 创建一个服务器类:ServerSocketFrame,继承JFrame...
    99+
    2022-11-13
    Java 聊天室 Java 聊天室接收Socket Java 聊天室发送Socket
  • Java实现每日给女友微信发送早安信息
    目录前言网上案例实现方式准备工作实现原理日期处理关键代码实现给指定微信好友推送消息前言 据说这个功能最近在抖音上很火,我没有抖音,没有看到。 但是我在网上看了,相关案例确实很多,但是...
    99+
    2022-12-30
    Java微信发送信息 Java 发送信息 Java 微信 信息
  • 如何使用Python实现给企业微信发送消息功能
    如何使用Python实现给企业微信发送消息功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、概述下面将介绍如何使用python3给企业微信发送消息。我的环境是linux...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作