用java设计一个公司局域网_java实现局域网内单对单和多对多通信的设计思路
这个看起来是很简单的,不就是socket吗,但是,要想有一个好的用户体验,还是很难的,主要问题有:
既然是局域网,那么就必然没有一个固定的IP地址作为主机,这个问题怎么解决?
好吧,有人很聪明的说,这还不简单,固定端口,对端口内所有的IP地址扫描,看有没有主机响应,有的话,就把主机IP记录下来。
好吧,使用这种方法,不光是愚蠢的遍历~你要怎么解决,其他用户上线之后在你的客户端上实时显示呢?
这个是行不通的。即使可以,占用的系统资源也是无法想象的,我测试了一下这个方法,表示CUP压力很大(我是4核)会出现短暂的死机。
解决方法是UDP+TCP
每一个客户端运行的第一件事,是对局域网特定端口进行广播,广播本客户端的IP,同时接监听端口下的数据
那么,第一台客户端运行的时候,就将自己的IP地址不间断发送到该端口下的各个IP地址。
当第二台客户端运行时,广播出自己的IP,此时,第一台客户端就获得了第二台得IP,将其加入自己的IP栈,第二台客户端也获得了第一台的IP
第三台第四台等 依次迭代
这样就可以了
这样的好处是,多人通信,使用UDP,快;双人通信使用TCP,保密性好
具体其他的就一点难度也没有了
几天后 源码奉上 期待吧
用java设计一个公司局域网_java实现局域网内单对单和多对多通信的设计思路相关推荐
- 用Java写一个公司员工管理系统!
用Java写一个公司员工管理系统! 今天看CSDN发现写管理系统的文章不少,我在这里也给大家用java写一篇!(当然这里只是最简单的那种qwq) 核心功能:对员工各项信息的管理 采用属性文件+资源文件 ...
- 【Java】一个公司职员薪水管理系统(顺序表)
相关顺序表代码链接:Java数据结构与算法-线性表_ly_better的博客-CSDN博客 设有一个公司职员薪水管理系统,要求完成: 可以增加新员工 可以根据员工的工号查找员工的详细信息 可以限时全部 ...
- Java定义一个抽象类科学家_Java程序设计作业
要求:一个院系一个年级的同学题目不能相同,所以选择题目时应避 免做相同的题目,其它学院和年级的同学相对自由一点.从22 道题 目中任选一道,按实验指导书模式那样完成即可,写好大作业报告, 同时写上自己 ...
- java构造一个水果类_Java基础入门之Object类、匿名内部类、构造方法的继承解析...
前言 大家好,我是Java进阶者.这篇文章我们主要介绍Java基础中的Object类.匿名内部类.构造方法的继承知识,一起来学习下吧! 一.Object类 1.Object类是所有类的父类,所有类都继 ...
- 设计一个成绩分类 输入成绩 输出优秀_BenQ 明基 PD2720U 27寸 Thunderbolt3.0 专业设计显示器开箱评测...
前言我们刚评测过BenQ的PD2705Q 27寸2K Type-C专业设计显示器.今天要为大家带来同为PD系列的BenQ PD2720U专业设计显示器,27英寸搭载4K UHD分辨率屏幕,支持96% ...
- JAVA判断一个地理坐标是否在一个多边形区域内和是否在一个圆形区域内(经纬度)
怎么样判断一个坐标点在一个多边形区域内?包括规则多边形,不规则多边形,还有圆... 1 判断一个坐标是否在圆形区域内? 多边形和圆分开写,首先简单的就是判断是否在圆里面,如何判断一个坐标是否在圆形区域 ...
- java 设计一个动物类_Java课程设计(动物换位)
[实例简介] 是一个关于Java课程设计的一个游戏,这是一个动物换位的游戏,是在前人的基础上改进的.不好请见谅! [实例截图] [核心代码] 112df6fb-1189-4bc0-a501-6dd58 ...
- 用Java语言设计一个圆类_Java语言程序设计(一)
1.咱们从一个简单的Java程序开始,该程序在控制台上显示消息"Welcome to Java!".首先咱们先建立一个java项目,我所用的编译器是Netbeans,打开Neatb ...
- java制作一个游戏菜单_java连连看游戏菜单设计
本文实例为大家分享了java连连看游戏菜单的具体实现代码,供大家参考,具体内容如下 先写GUI. 首先初始化框架,菜单,按钮,需要把菜单和按钮都添加在框架中.注意添加的顺序,首先要设置菜单,再设置框架 ...
- java实现一个gui面板_JAVA GUI自定义JPanel画板背景
自定义JPanel面板背景 一.前言 1.GUI全称是Graphical User Interface,就是图形用户界面.JAVA的GUI应用广泛在我们生活中也很常见.很多应用使用该GUI编程设计,像 ...
最新文章
- 基于切面和注解的Redis分布式实现
- 144.ipv4地址匮乏的解决方法
- java jsp 原理_jsp的工作原理是什么
- 实践操作--云端深度学习工作站配置指南(转)
- javascript四个方向无间隙滚动合集(多浏览器IE,firefox兼容)
- mysql平台workb_MySQL:MySQL Workbench的使用
- 2021牛客暑期多校训练营7 K-xay loves sequence(主席树+二分)
- C# 类型转换问题一
- ASP.NET MVC IOC之Unity攻略
- WINDOWS对文件签名,算法如何由sha1改为sha256/sha512
- 毕业论文的6中降重方法
- 秀米 html5 编辑工具,秀米编辑器
- vs2010中外联qt,使用qt编程
- 智能小车寻迹c语言程序,智能小车循迹记时测速程序
- 剑指Offer——中国银行面试知识储备+面试内容(Offer-2已收割)
- 如何通过提问识人(行为面试法)
- 数仓建设之IP库的匹配
- 中软国际中期顶岗实习第一天
- Caffe中的损失函数
- ccsa安学网小程序_CCSA安学网安全题库
热门文章
- 【图像压缩】基于matlab JEPG图像压缩【含Matlab源码 1167期】
- 【基础教程】基于matlab GUI界面介绍与搭建【含Matlab源码 189期】
- conda可以更改环境的python anaconda替换环境的Python
- mysql1232_Mysql执行流程
- 【数据结构与算法】二分法的边界问题总结
- yolo-v5连接手机摄像头实时检测的步骤
- java执行update的方法_解决Hibernate4执行save()或update()无效问题的方法
- mysql数据库操作常用命令_MySQL数据库操作常用命令小结
- flask综合整理2
- “互联网+”时代,网络安全市场将达千亿级别