TCP/UDP记录-聊天器

news/2024/5/18 13:01:28 标签: udp, tcp/ip, 网络协议, python, 网络

文章目录

  • 1、UI设计
  • 2、功能设计
  • 3、通信设计
  • 4、最终效果

本文是接着之前的文章写的后续,因此如果有什么看不太明白的可以先看下前面的文章:TCP通信与UDP通信记录

1、UI设计

前面记录了UDP和TCP进行通信的基本原理和方式,本文就继续来进行一些应用的扩展,这里主要是基于TCP设计的聊天器页面,这里页面设计我还是使用PYQT的方式,上手比较方便,关于PYQT,我也有一篇专栏专门进行介绍的,可以自行查看:PYQT开发笔记

本文这里只是做个展示,当然不会太完美,最终的整体框架如下所示,主要是分为服务器还有客户端两块,上下进行布局,另外都设置了发送端和接收端,主要还是根据输入的IP地址和端口号进行连接

创建我们的工程
在这里插入图片描述

整体页面如下:
在这里插入图片描述
下面是用到的一些控件,也基本都是一些常见的控件:
在这里插入图片描述

2、功能设计

下面就开始功能方面了,功能上主要是基于socket进行通信嘛,实现一个类似聊天器的效果,基于这个我们其实就可以做很多东西了,比如远程遥控器,文件传输系统等等有意思的东西了。

因此大概流程就是:

  • 选择是进行服务器模式还是客户端模式,当然实际上同时选择这两个模式也是没什么问题的,因为本身就可以多线程数据传输的。
  • 输入IP地址和端口号,根据IP地址和端口号进行连接
  • 数据发送
  • 接收另外一段回传的信息

3、通信设计

下面就开始看代码了,我们用pyuic就可以将ui文件生成我们需要的py文件了
在这里插入图片描述
先看下服务器部分的设计吧,首先是创建一个服务器连接
在这里插入图片描述
服务器线程中一直在进行数据收发的处理
在这里插入图片描述
通过按钮将事先放在文本中的信息发送出去
在这里插入图片描述
客户端设计如下,同样也是客户端连接后创建客户端线程,哦对了这里需要提一下就是其实这个过程很有可能因为各种占线或者填错了什么东西导致连接失败,所以最好用python里面的try来进行,这样起码不至于闪退。
在这里插入图片描述
下面是客户端的线程函数
在这里插入图片描述
客户端数据发送
在这里插入图片描述

4、最终效果

经过上面的设置我们就可以开始进行通信了,整个过程其实还是比较简单的,我们先尝试用外部的工具来和他进行通信,首先运行我们的程序:
在这里插入图片描述
打开VOFA,设置为服务器模式,和我们的程序进行连接,绑定好IP地址后进行连接,可以看到下面已经连接成功了
在这里插入图片描述
下面进行数据收发测试,可以看到完全OK的
在这里插入图片描述
下面修改为客户端模式在来进行测试:
在这里插入图片描述
还是进行收发测试,可以看到是完全没问题的
在这里插入图片描述
下面在进行自己的收发测试,两边同时进行连接
在这里插入图片描述
服务器发送数据到客户端OK
在这里插入图片描述
客户端发送数据返回服务器也是OK的
在这里插入图片描述


http://www.niftyadmin.cn/n/980101.html

相关文章

Android UI线程

在开发Android应用时必须遵守单线程模型的原则: Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。在单线程模型中始终要记住两条法则:1. 不要阻塞UI线程2. 确保只在UI线程中访问Android UI工具包当一个程序第一次启动时,Andr…

EPLAN Electric P8 2.0即将到来,着实令人期待-转caodaping

在今年的4月份,2.0版本的EPLAN Electric P8 首次揭开其神秘面纱,见诸于世.它的展露,再次印证了EPLAN 软件平台朝着"更实用"这一方向发展,同时也证明"可靠性"这个长期的话题--符合新的机械指令(译注:指IEC 61346等标准近期做了大量更新,EPLAN 软件相关主数据…

1134. Vertex Cover (25)(最小点集覆盖)

Vertex Cover (25) 时间限制 600 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A vertex cover of a graph is a set of vertices such that each edge of the graph is incident to at least one vertex of the set. Now given a …

1115. Counting Nodes in a BST (30)(建立二叉搜索树)

Counting Nodes in a BST (30) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties: The left subtree of a no…

SpringMVC bean validator 使用

1.添加依赖jar <dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>4.3.1.Final</version></dependency><dependency><groupId>javax.validation</groupId&g…

TCP/UDP记录-图像传输系统

文章目录1、UDP/TCP图像是怎么进行传输的2、UDP传输3、TCP传输4、使用树莓派CSI摄像头传输5、降低延迟的一些思路这个其实要算我当时实习的一项内容了&#xff0c;当时实习去了家老师开的小公司&#xff0c;工作压力相对轻松&#xff0c;很放开的感觉&#xff0c;觉得有什么需求…

分布式处理大数据的目录及学习树

针对大数据的特点&#xff0c;传统集中式处理已不能满足大数据的处理要求。因此&#xff0c;利用分布式处理对大数据的收集、ETL、计算、使用是必由之路。 本博不是什么技术大拿&#xff0c;只是记录在学习利用分布式处理大数据过程中的心得和踩过的坑&#xff0c;自娱自乐&…

socket图传上位机设计记录

文章目录1、上位机页面和功能设计1、页面设计2、功能定义2、上位机程序设计3、测试效果之前的文章已经对TCP/UDP进行数据传输做了一定的个介绍了&#xff0c;并进行了聊天器还有图像传输的设计&#xff0c;因此这里就来结合之前的pyqt来做最后的一点完善&#xff0c;把上位机这…