聊天器案例

python web03-线程-12-案例:多任务udp聊天器 python web03-线程-12-案例:多任务udp聊天器 import socket import threading def recv_msg(udp_socket): """接收数据并显示""" # 接收数据 while True: recv_data = udp_socket.recvfrom(1024) print(recv_data) def send_msg(udp_socket, dest_ip, dest_port): 阅读详情

这次我们学习的是聊天器案例,我们平时在用电子设备聊天的时候就会看到已下这种页面,

以下的页面是用JavaScript 获取id写成的。

1.HTML:写好盒子在盒子里面设置好聊天器要用到的标签并设置好标签。

<body>

 <div class="talk_con">

        <div class="talk_show" id="words">

            <div class="atalk">

                <img src="./悟饭.jpg" alt="" class="img1 pr-1">

                <span>サイヤ人 :  きみ君はこっけー滑稽だ</span></div>

            <div class="btalk"><span>You're very funny  : Joker</span>

            <img src="./2.jpg" alt="" class="img pl-1">

            </div>

        </div>

        <div class="talk_input">

            <select class="whotalk" id="who">

                <option value="0">サイヤ人</option>

                <option value="1">Joker</option>

            </select>

            <input type="text" class="talk_word" id="talkwords">

            <input type="button" value="发送" class="talk_sub" id="talksub">

        </div>

    </div>

</body>

2.CSS:设置好类名的属性便于我们使用。

<style>

.talk_con{

            width:600px;

            height:500px;

            border:1px solid #666;

            margin:50px auto 0;

            background:#f9f9f9;

        }

        .talk_show{

            width:580px;

            height:420px;

            border:1px solid #666;

            background:#fff;

            margin:10px auto 0;

            overflow:auto;

        }

        .talk_input{

            width:580px;

            margin:10px auto 0;

        }

        .whotalk{

            width:80px;

            height:30px;

            float:left;

            outline:none;

            font-size: 14px;

        }

        .talk_word{

            width:420px;

            height:26px;

            padding:0px;

            float:left;

            margin-left:10px;

            outline:none;

            text-indent:10px;

        }        

        .talk_sub{

            width:56px;

            height:30px;

            float:left;

            margin-left:10px;

        }

        .atalk{

           margin:10px;

        }

        .atalk span{

            display:inline-block;

            background:#0181cc;

            border-radius:10px;

            color:#fff;

            padding:5px 10px;

        }

        .btalk{

            margin:10px;

            text-align:right;

        }

        .btalk span{

            display:inline-block;

            background:#ef8201;

            border-radius:10px;

            color:#fff;

            padding:5px 10px;

        }

        .img{

            height: 40px;

            width: 60px;

        }

        .img1{

            height: 45px;

            width: 30px;

        }

</style>

3.JavaScript:最重要的还是JavaScript,不知道要怎么写的话就先吧加载事件写上,然后就获取id名,然后把获取到的id名放入点击事件中,然后用if…else…调整人物语话的顺序,最后用innerHTML把代码运用到HTML中。

<script>

         window.onload = function(){

            //获取聊天框内容

            var words = document.getElementById("words");

            //获取多选框

            var who = document.getElementById("who");

            //获取输入框

            var talkwords = document.getElementById("talkwords");

            //获取发送按钮

            var talksub = document.getElementById("talksub");

            talksub.onclick = function () {

                 //选项框属性

                 var text1 = who.value;

                 //获取输入框属性

                 var text2 = talkwords.value;

                 /* 内容 */

                 var con = '';

                 if (text1 == 0) {

                     con = '<div class="atalk"><img src="./悟饭.jpg" alt="" class="img1"><span> サイヤ人 : '+ text2 + '</span></div>';

                 }  else {

                     con = '<div class="btalk"><span>'+ text2 + '  :  Joker</span> <img src="./2.jpg" alt="" class="img"></div>';

                 }

                 words.innerHTML = words.innerHTML + con;

             }

        }

</script>

小结:

         聊天器案例是属于点击事件中的案例之一,关键的部分是JavaScript,注意if…else是为了做判断的,if 条件:满足条件时的操作else:不满足条件时的操作。

这是我所学到的JavaScript案例,所以我要分享给你们,希望可以帮助到你们。

以上就是我的分享,新手上道,请多多指教。如果有更好的方法或不懂得地方欢迎在评论区教导和提问喔!

 

泛微E10 eBuilder低代码平台避坑指南:新手最容易犯的5个错误及解决方案 本文针对泛微E10 eBuilder低代码平台的新手开发者,总结了5个最常见错误及解决方案,包括表单联动配置、流程设计权限、动作流时序、数据加工类型转换和权限管理过度配置等问题。通过实战经验和代码示例,帮助开发者避开常见陷阱,提升开发效率。 阅读详情

相关推荐

高级Salesforce开发面试题

自定义设置允许您创建自定义数据集,以及为组织、配置文件或特定用户创建和关联自定义数据。自定义元数据类似于自定义设置,但是自定义元数据类型中的记录被视为元数据而不是数据。自定义设置有列表和层次自定义设置两种。自定义元数据中没有此类类型。此外,自定义元数据不支持基于用户配置文件或特定用户的层次结构类型的数据。自定义设置现在不再支持关系字段。但您可以在自定义元数据对象之间创建查找。元数据查询不占用查询sql次数的限制。

weixin_45663522的博客 1242

前端jQuery炫酷效果

案例一:聊天窗口 1<!DOCTYPEhtml> 2<htmllang="en"> 3<head> 4<...

m0_43416037的博客 238

Anaconda启动失败,一直在loading application的问题

实战基础新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本

Tristan的博客 2771

vue.js源码

/*! * Vue.js v2.5.16 * (c) 2014-2018 Evan You * Released under the MIT License. */ !function(e,t){"object"==typeof exports&amp;&amp;"undefined"!=typeof module?module.exports=t():"function"==typeof...

csdn_12345678910的博客 2579

Cisco Firepower FMCv修改管理Ip方法

Cisco Firepower FMCv修改管理Ip方法

funnycoffee123的博客 1091

从零开始掌握RDMA拥塞控制:原理、算法与实战解析

本文深入解析了RDMA拥塞控制的核心原理与实战配置。RDMA依赖无损网络保障高性能,其关键在于PFC与ECN两大技术协同防止丢包。文章重点剖析了主流算法DCQCN的工作机制与参数调优,并简要介绍了HPCC与TIMELY等前沿算法。最后提供了在Linux上配置RoCEv2与DCQCN的详细步骤及性能调试方法,帮助读者从零构建稳定的RDMA网络环境。

weixin_28452161的博客 136

Python45_案例:多任务版UDP聊天器

from socket import * import threading def recv_msg(udp_socket): """ 接收数据并显示 :return: """ while True: recv_data, dest_addr = udp_socket.recvfrom(1024) #注意:recvfrom是等待接收,...

qq_34873298的博客 161

【以太网硬件六】1000base-T物理层编码究竟是怎么编的?

详述1000base-T物理层4D-PAM5的编码过程

highman110的博客 5324

Python多线程学习及UDP多任务聊天器案例分享

简单地说,就是操作系统可以同时运行多个任务。单核CPU也能执行多任务。多任务优势:在多核或多,或支持Hyper-threading的CPU上使用多线程程序设计的好处是显而易见,即提高了程序的执行吞吐率。在单CPU单核的计算机上,使用,也可以把进程中负责I/O处理、人机交互而常被阻塞的部分与密集计算的部分分开来执行,编写专门的workhorse线程执行密集计算,从而提高了程序的执行效率。python默认单任务执行。

2401_82928104的博客 2101

Qualcomm 常用NV列表

^ NV ITEM ^ 功能^^ |NV10 |mode prefer,找网模式|新平台使用NV80000| ^NV74 NV74=0关闭自动接听电话^ |NV240 |NV240=FALSE|EVDO出现网络的问题,此项必须设定为FALSE| |NV255 |CDMA规避网络列表(SID/NID号)| |NV256 |

sdrgtywretyeruet的专栏 5769

uniapp [全端兼容] - 实现内网使用天地图离线地图,详解项目加载天地图的离线地图服务器部署与使用教程示例源码,Uniapp如何实现天地图的离线加载部署在内网访问(兼容H5、微信小程序、App)

uniapp天地图如何离线访问,无需网络调用天地图API,天地图离线地图,天地图——内网使用离线地图,uniapp中加载天地图的离线地图,uniAPP实现天地图离线访问,在内网中无法直接使用外网天地图资源怎么办,在uni-app中加载地图 -使用天地图的瓦片数据。UNIAPP天地图离线怎么使用,内网部署天地图,天地图离线瓦片,部分瓦片数据,天地图如何离线,下载天地图离线服务,并用Uniapp+天地图离线部署,天地图私有化部署,实现离线加载天地图,Java+uniapp天地图离线开发,uniapp项目中无网络

🏆 前端领域优质创作者 4901

多线程--实现多线程版udp聊天器案例

线程 线程可以简单理解为同一进程中有多个计数器,每个线程的执行时间不确定,而每个进程的时间片相等,线程是操作系统调度执行的最小单位。 多线程版udp聊天器案例 案例实现: import socket import threading def send_msg(udp_more_socket,dest_ip,dest_port): """获取键盘数据,并将数据发送给对方""" ...

weixin_44850984的博客 637

文末含资料链接和视频讲解!YOLOv8+RepVGG+QueryDet小目标检测终极指南:从理论到实战,突破遥感图像检测难题

QueryDet(Query Detection)机制代表了目标检测领域的一个重要范式转变。传统的目标检测方法基于anchor或anchor-free的密集预测,需要为图像中的每个可能位置生成预测。而QueryDet采用了稀疏查询的方式,通过少量的可学习查询向量来直接预测目标。 这种设计灵感来源于Transformer架构中的注意力机制。在自然语言处理中,Transformer通过query-key-value机制实现了高效的序列建模。QueryDet将这一思想引入到目标检测中,将检测问题转化为查询匹配问

FJN110的博客 386

UDP聊天器案例

""" 功能: 1. 发送信息 2. 接收信息 3. 退出系统 架构: 1. 发送信息 send_msg() 2. 接收信息 recv_msg() 3. 程序的主入口 main() 4. 当程序独立运行时,才启动聊天器 实现步骤 1. 发送信息 send_msg() 1). 定义变量接收用户与输入的接收方的 IP地址 2). 定义变量接收用户与输入的接收方端口 3). 定义变量接收用户与输入...

言午日月 183

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

案例:简单的udp聊天器

简单的udp聊天器 import socket def main(): # 创建套接字 udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) udp_ip=input("输入对方的ip:") dest_port=int(input("输入对方的por...

weixin_44321116的博客 268

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

案例:多任务udp聊天器

收和发不能同时进行 通过多线程来解决 import socket import threading def recv_msg(udp_socket): """接收数据并显示""" # 接收数据 while True: recv_data = udp_socket.recvfrom(1024) print(recv_d...

moonlightpeng的博客 245

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

JavaScript 聊天器小案例

本次实现js国庆倒计时小案例 开发工具与关键技术:Visual Studio 2015 JavaScript 当然 首先还是先写出大概布局如下图: 下面便是css样式了: 这样便得到了聊天框的大概布局后面添加js 即可. 下图就是JavaScript了: 首先我们可以在button发送按钮的属性值里添加一个点击事件。 在点击该按钮触发点击事件封装自命名的函数里来进行一个JavaScript的代码写入。 开头我们需要先获取到放置聊天内容的容器Id 、左右用户的Id 、 通过I.

weak1003的博客 280

python实现多人聊天udp_python实现的多任务版udp聊天器功能案例

本文实例讲述了python实现的多任务版udp聊天器。分享给大家供大家参考,具体如下:说明编写一个有2个线程的程序线程1用来接收数据然后显示线程2用来检测键盘数据然后通过udp发送数据要求实现上述要求总结多任务程序的特点参考代码:import socketimport threadingdef send_msg(udp_socket):"""获取键盘数据,并将其发送给对方"""while True...

weixin_39837105的博客 99

Python网络开发基础,实现udp聊天器小案例

文章目录1. 实战:《系统性能定时监控》-邮件监控2. 虚拟环境3. 网络通信概述4. [重点]ip地址(重点)5. Linux命令(ping、ifconfig等)6. [重点]端口(重点)7. [重点]网络传输方式8. [重点]socket简介9. [重点]udp网络程序-发送数据10. [重点]udp网络程序-发送并接收数据11. [重点]python3编码转换12. udp绑定端口-发送端13. [重、难点]udp绑定端口-接收端14. UDP广播15. [难点]案例:udp聊天器(一)16. [难点

黑马程序员官方博客 317

【案例】多线程实现基于UDP协议的聊天器

博主前言: 在上一篇博客中,我讲述了用多线程的方式实现多任务,结合套接字编程的内容,我们已经具备了实现开发简单的基于UDP协议的聊天功能的程序,本来今天准备写一下多任务的另一种实现方式:多进程。但是今天事情有点多,写写停停思绪也没能集中,所以干脆停笔了,打算明天再写,加油! 整体逻辑: def main(): # 1. 创建udp套接字 udp_socket = socket....

南风无休的博客 589

【Python案例】制作一个私人的简易聊天器,邀请ta来激情的聊天吧,搭建UDP网络通信模型

嗨嗨,大家下午好~ 我是小圆互联网的本质是什么?其实就是信息的交换。就比如我们常用的QQ、微信等。那么如何将自己的信息发送到其他人的电脑上呢?那就需要借助网络模型来完成这样的事情了。今天就带领大家使用UDP网络模型来完成一个简单的聊天器

aliYz的博客 211

python案例:多任务版udp聊天器

说明 编写一个有2个线程的程序 线程1用来接收数据然后显示 线程2用来检测键盘数据然后通过udp发送数据 要求 实现上述要求 总结多任务程序的特点 参考代码: import socket import threading def send_msg(udp_socket): """获取键盘数据,并将其发送给对方""" while True: # 1. 从键盘输入...

kai46385076的专栏 262

线程7 案例:多线程版udp聊天器

d

小屋 267
上一篇: 计数器的点击事件
下一篇: 表单验证案例
Rowse
博客等级 码龄5年 1粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值