python实现多人聊天udp_python—多任务版udp聊天机器人

将多任务(多线程)引入到udp聊天机器人,可以实现同时发送消息和接收消息

1 import socket

2 import threading

3

4

5 def udp_send(udp_socket,ip,port):

6 while true:

7 try:

8 # 获取发送的信息

9 data = input('请输入要发送的信息:')

10 udp_socket.sendto(data.encode('gbk'), (ip,port))

11

12 except exception as erro:

13 print('错误类型:',erro)

14

15

16 def udp_recv(udp_socket):

17 while true:

18 # 接收信息

19 recv_data = udp_socket.recvfrom(1024)

20 print('接收的信息:',recv_data[0].decode('gbk'))

21

22

23 def main():

24

25 # 创建udp套接字

26 udp_socket = socket.socket(socket.af_inet, socket.sock_dgram)

27

28 # 绑定本地信息

29 udp_socket.bind(('',8080))

30

31 # 获取对方通信地址

32 ip = input('请输入对方的ip:')

33 port = int(input('请输入对方的端口port:'))

34

35 # 创建线程

36 t1 = threading.thread(target=udp_send, args=(udp_socket, ip, port))

37 t2 = threading.thread(target=udp_recv, args=(udp_socket,))

38 t1.start()

39 t2.start()

40

41

42 if __name__ == '__main__':

43 main()

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428491.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kafka 集群的部署安装

这里我们罗列一下我们的环境 10.19.18.88 zk1 10.19.16.84 zk2 10.19.11.44 zk3这里公司需要接入kafka用于zipkin来定位调用链 kafka 的地址是http://kafka.apache.org/ zipkin 的地址是https://github.com/openzipkin/zipkin/tree/master/zipkin-server#environment-variables…

Ubuntu 16.04 设置MySQL远程访问权限

第一步:修改配置文件的端口绑定 打开的目录可能会根据MySQL的版本稍有不同,可以先尝试打开/etc/mysql/my.cnf这个配置文件,若该文件不存在或文件内容为空,则尝试下面的文件路径。 sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 在下…

spring mysql整合_springboot mybatis mysql 整合

1、pom文件配置mysqlmysql-connector-javaruntimeorg.springframework.bootspring-boot-starter-testtestorg.mybatis.spring.bootmybatis-spring-boot-starter1.2.0org.springframework.bootspring-boot-starter-jdbc2、mybatis 数据库连接配置spring.datasource.driver-class…

Android 平台电容式触摸屏的驱动基本原理

Android 平台电容式触摸屏的驱动基本原理 Android 平台电容式触摸屏硬件基本原理 Linux 与 Android 的多点触摸协议 Linux输入子系统:事件的编码 转载于:https://www.cnblogs.com/LittleTiger/p/7992840.html

微信小程序怎么取mysql_微信小程序如何加载数据库真实数据?

微信小程序要加载网站数据库里面的真实数据,有一个硬性的要求,就是你的网站域名必须是https协议才行,要不然你第一步服务器域名配置你都通过不了,小编我也是前不久申请的https://www.100txy.com,具体申请步骤大家自行去…

mysql定时任务

1. 查看是否开启定时策略 show variables like %event_sche%; 若出现如下图,则此时是关闭状态 开启定时策略(重启无效) set global event_scheduler 1; 则需要在配置文件my.ini的设置(重启有效) [mysqld] event_schedulerON //这一行加入mysqld标签下 2. 创建存储过…

java 中jtable_java中使用JTable控件

JTable是java桌面软件设计的一个很有用的UI控件,是一个表格控件,完整位置是:javax.swing.JTable。以下是我的一些使用经验:添加行:不能直接向JTable插入行,需要借助JTable的tableModel,代码如下…

02使用常规步骤编译NanoPiM1Plus的Android4.4.2

02使用常规步骤编译NanoPiM1Plus的Android4.4.2 大文实验室/大文哥 壹捌陆捌零陆捌捌陆捌贰 21504965 AT qq.com 完成时间:2017/12/5 17:51 版本:V1.0 开发板:NanoPi M1 Plus/zh SDK:Android4.4.2 按照全志A33平台编译调通的功能&…

java 精灵线程_Java线程的状态分析

/*** 线程的状态分析*authoraa**/public classThreadState {public static void main(String[] args) throwsException {/*** 新建线程,线程为新建状态* jdk:至今尚未启动的线程的状态。* 如果不给线程设置名称,线程的名称将会是:…

【02】koala编译中文出错(已放弃不用)

http://koala-app.com/index-zh.html koala 下载地址。sass。中文编译出错:打开 Koala文件夹位置->rubygems->gems->sass->lib->sass->engine.rb。添加这句话。在所有的request XXXX 之后即可。复制添加Encoding.default_external Encoding.find…

java jlabel里面加button_在Java Swing中通过JLabel覆盖JButton?

是否可以在Swing中将Button叠加在Label上?例如,如果有一个带有图像的JLabel而没有文本,我想在我的JLabel上覆盖我的按钮.标签定义如下:myLabel new javax.swing.JLabel(new ImageIcon( myPicture ));如果没有,那么任何想法我怎么能意识到这一点,谢谢.编…

项目管理之码云和git

目录 学习链接 1 码云 1 第一步,注册 2 第二部,登录 2 创建项目 2 git管理 4 如何生成公钥 5 clone项目 5 提交项目 6 1.本地初始化一个项目 6 2.开始第一次上传你的项目 7 5.Git基本操作 8 学习链接 https://www.cnblogs.com/xiaoxiaoccaiya/p/7125136.…

java 传递脚本给c_java – JNI将参数传递给c的方法

我有一个c文件myCppTest.cpp,它有方法int myFunction(int argv, char **argc) {}和myClass.java中的Java本机方法public native int myFunction (int argv, char[][] argc);使用javah -jni myClass生成头文件后,我有头JNIEXPORT jint JNICALL Java_JPTokenizer_init(JNIEnv *, …

【例3-4】求后序遍历

【例3-4】求后序遍历 链接:http://ybt.ssoier.cn:8088/problem_show.php?pid1339时间限制: 1000 ms 内存限制: 65536 KB【题目描述】 输入一棵二叉树的先序和中序遍历序列,输出其后序遍历序列。 【输入】 共两行,第一行一个字符串&a…

java classpath bat_tomcat启动批处理——setclasspath.bat | 学步园

除了上面两个批处理,还有一个比较重要的脚本,即是setclasspath.bat,它主要负责寻找、检查JAVA_HOME和JRE_HOME两个变量。********************************************************************************************if ""%1&q…

验证 Swarm 数据持久性 - 每天5分钟玩转 Docker 容器技术(104)

上一节我们成功将 Rex-Ray Volume 挂载到了 Service。本节验证 Failover 时,数据不会丢失。 Scale Up 增加一个副本: docker service update --replicas 2 my_web 运行之前我们先推测一下,理想的结果应该是:swarm 在 swarm-worker…

SQL Server安全级别2的阶梯:身份验证

SQL Server安全级别2的阶梯:身份验证作者:Don Kiely,2014/06/18 该系列本文是“Stairway系列:SQL Server安全性的阶梯”的一部分 SQL Server提供了保护服务器和数据免受当今复杂攻击所需的一切。但是,在您有效使用这些…

java file 堵塞_单元测试最终在Java 6中阻塞

首先考虑使用IOUtils.closeQuietly(),它会将未经测试的代码(可能是重复代码)减少为:try {f new BufferedInputStream(new FileInputStream(source));f.read(buffer);} finally {IoUtils.closeQuietly(f);}现在变得艰难. “正确”的方法是将BufferedInputStream的创…

java jna调用dll文件_关于java jna调用dll的问题

public interface User32 extends StdCallLibrary{User32 INSTANCE (User32)Native.loadLibrary("User32",User32.class);//加载系统User32 DLL文件,也可以是C写的DLL文件int SendMessageA(int hwnd,int msg,int wparam,int lparam);int FindWindowA(Str…

【bzoj4444】[Scoi2015]国旗计划 倍增

题目描述 给出一个圈和若干段,问:对于所有的 $i$ ,选择第 $i$ 段的情况下,最少需要选择多少段(包括第 $i$ 段)能够覆盖整个圈?输入 第1行,包含2个正整数N,M,分别表示边防…