案例:多任务版udp聊天器(代码片段)

jyue jyue     2023-03-09     364

关键词:

说明

  • 编写一个有2个线程的程序
  • 线程1用来接收数据然后显示
  • 线程2用来检测键盘数据然后通过udp发送数据

要求

  1. 实现上述要求
  2. 总结多任务程序的特点

参考代码:

import socket
import threading


def send_msg(udp_socket):
    """获取键盘数据,并将其发送给对方"""
    while True:
        # 1. 从键盘输入数据
        msg = input("
请输入要发送的数据:")
        # 2. 输入对方的ip地址
        dest_ip = input("
请输入对方的ip地址:")
        # 3. 输入对方的port
        dest_port = int(input("
请输入对方的port:"))
        # 4. 发送数据
        udp_socket.sendto(msg.encode("utf-8"), (dest_ip, dest_port))


def recv_msg(udp_socket):
    """接收数据并显示"""
    while True:
        # 1. 接收数据
        recv_msg = udp_socket.recvfrom(1024)
        # 2. 解码
        recv_ip = recv_msg[1]
        recv_msg = recv_msg[0].decode("utf-8")
        # 3. 显示接收到的数据
        print(">>>%s:%s" % (str(recv_ip), recv_msg))


def main():
    # 1. 创建套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # 2. 绑定本地信息
    udp_socket.bind(("", 7890))

    # 3. 创建一个子线程用来接收数据
    t = threading.Thread(target=recv_msg, args=(udp_socket,))
    t.start()
    # 4. 让主线程用来检测键盘数据并且发送
    send_msg(udp_socket)

if __name__ == "__main__":
    main()

udp聊天器

importsocketdefsend_msg(udp_socket):"""获取键盘数据,并将其发送给对方"""#1.从键盘输入数据msg=input("\n请输入要发送的数据:")#2.输入对方的ip地址dest_ip=input("\n请输入对方的ip地址:")#3.输入对方的portdest_port=int(input("\n请输入对方的port:"))#4.... 查看详情

python制作一个私人的简易聊天器,邀请ta来激情的聊天吧,搭建udp网络通信模型(代码片段)

...了。今天就带领大家使用UDP网络模型来完成一个简单的聊天器主页左侧可以免费领取【代码】【相关教程、资料】,或者对于本篇文章有疑问的同学可以私信我分享内容python中的套接字实现如何与Ubuntu建立通信发送/接收消息... 查看详情

网络编程案例多任务版tcp服务端程序开发(代码片段)

案例-多任务版TCP服务端程序开发案例-多任务版TCP服务端程序开发1.需求2.具体实现步骤3.多任务版TCP服务端程序的示例代码4.小结模拟QQ聊天-客户端模拟QQ聊天-服务端案例-多任务版TCP服务端程序开发学习目标能够说出多任务版TCP... 查看详情

多任务版tcp服务端程序开发案例+源码(代码片段)

学习目标:能够说出多任务版TCP服务端程序的实现过程文章目录1.需求2.具体实现步骤3.多任务版TCP服务端程序的示例代码:4.小结1.需求目前我们开发的TCP服务端程序只能服务于一个客户端,如何开发一个多任务版的TCP服务... 查看详情

udp案例代码(代码片段)

文章目录UDP网络编程的案例代码普通接收方/发送方代码多线程方式代码UDP网络编程的案例代码用于描述发送发与接收方之间的通信普通接收方/发送方代码接收方importjava.io.IOException;importjava.net.DatagramPacket;importjava.net.DatagramSocket;im... 查看详情

javase小练习(简单的聊天器)

为了巩固JavaSE的知识,练习一哈,大神绕道。下面贴一下代码。Client端代码packageGUI;importjava.awt.BorderLayout;importjava.awt.Dimension;importjava.awt.Font;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;import 查看详情

181119网络通信----多任务----进程案例多任务拷贝器(代码片段)

importmultiprocessing#导入进程模块importos#导入文件模块defmain():#1获取用户要拷贝的文件名字old_folder_name=input("你需要拷贝的文件夹的名字")#2创建一个新的文件夹try:new_folder_name=old_folder_name+"[复件]"os.mkdir(new_folder_name)#创建一个文件excep... 查看详情

udp案例代码(代码片段)

文章目录UDP网络编程的案例代码普通接收方/发送方代码多线程方式代码UDP网络编程的案例代码用于描述发送发与接收方之间的通信普通接收方/发送方代码接收方importjava.io.IOException;importjava.net.DatagramPacket;importjava.net.DatagramSocket;im... 查看详情

静态web服务器-多任务版(代码片段)

学习目标能够写出多线程版的多任务web服务器程序1.静态Web服务器的问题目前的Web服务器,不能支持多用户同时访问,只能一个一个的处理客户端的请求,那么如何开发多任务版的web服务器同时处理多个客户端的请求?... 查看详情

socket多任务(代码片段)

...2.threading.Thread多线程(传输文件) 3.SockerServer实现多任务3.1ForkingMixIn-多进程(限linux)3.2ThreadingMixIn-多线程3.3ThreadingTCPServer-线程池4.Select模块(单线程实现多线程效果)  1. 循环版实现多连接以下例子算狭义上实... 查看详情

hadoop大数据技术yarn案例实操(代码片段)

Yarn案例实操1.Yarn生产环境核心参数配置案例2.容量调度器多队列提交案例2.1需求2.2配置多队列的容量调度器2.3向Hive队列提交任务2.4任务优先级3.公平调度器案例3.1需求3.2配置多队列的公平调度器3.3测试提交任务4.Yarn的Tool接口案... 查看详情

mr案例:学生排序(单字段排序多字段排序)(代码片段)

文章目录一、提出任务二、完成任务(一)准备数据1、在虚拟机上创建文本文件2、上传文件到HDFS指定目录(二)实现步骤1、创建Maven项目2、添加相关依赖3、创建日志属性文件4、创建学生实体类5、创建学生映射... 查看详情

python搭建本地静态web服务器(多任务进阶版)(代码片段)

Python搭建本地静态Web服务器静态Web服务器-多任务版1.静态Web服务器的问题2.静态Web服务器-多任务版的示例代码3.小结静态Web服务器-面向对象开发1.以面向对象的方式开发静态Web服务器2.静态Web服务器-面向对象开发的示例代码3.小... 查看详情

java多线程基础-第一节6:多线程案例(代码片段)

文章目录一:单例模式(1)设计模式概述(2)单例模式概述(3)单例模式实现A:饿汉模式B:懒汉模式①:单线程版②:多线程版③:多线程版(改进)二:阻塞队列... 查看详情

python3多线程实战(python3经典编程案例)(代码片段)

python3多进程实战(python3经典编程案例)python3多线程实战(python3经典编程案例)python3协程实战(python3经典编程案例)总结:python多线程适用在I/O密集型的任务中。对于I/O密集型任务来说,较少的... 查看详情

python3多线程实战(python3经典编程案例)(代码片段)

python3多进程实战(python3经典编程案例)python3多线程实战(python3经典编程案例)python3协程实战(python3经典编程案例)总结:python多线程适用在I/O密集型的任务中。对于I/O密集型任务来说,较少的... 查看详情

java基础——udp实现dos聊天室案例(代码片段)

利用UDP网络编程UDP协议不严格区分发送端和接收端发送端//udp打包 byte[]b="固定".getBytes(); //DatagramPacket(byte[]buf,intlength,InetAddressaddress,intport) //构造用于发送长度的分组的数据报包length指定主机上到指定的端口号。 Datagra... 查看详情

实战案例分享:利用python实现多任务进程(代码片段)

一、进程介绍进程:正在执行的程序,由程序、数据和进程控制块组成,是正在执行的程序,程序的一次执行过程,是资源调度的基本单位。程序:没有执行的代码,是一个静态的。二、线程和进程之... 查看详情