Java笔记-简单的TCP通信程序(二)
简单的TCP通信程序(二)上次说了简单的TCP通信的代码实现,但是那是不完善的。只能进单次信息得交换,但是我们知道,一个服务器是可以和多个客户端进行通信得,所以,我们需要创建多线程。每有一个客户端发送信息服务器就会创建一个新的线程,从而实现多个客户端同时与服务器进行通信。
客户端我们以传输一张图片为例
代码实现:
12345678910111213141516171819202122232425262728293031323334353637383940414243public class TCPClient { public static void main(String[] args) throws Exception { //创建一个本地字节输入流FileInputStream对象,构造方法中要绑定要读取的数据源 FileInputStream fis = new FileInputStream("E:\\text\\a.jpg"); //创建一个客户端Socket对象,构造方 ...
Java笔记-简单的TCP通信程序(一)
简单的TCP通信程序TCP通信能实现两台计算机之间的数据交互,通信的两端,要严格区分为客户端(Client)与服务端(Server)。
客户端实现1234567891011121314151617181920212223public class TestTCPClient { public static void main(String[] args) throws IOException { //1.创建一个客户端对象Socket,构造方法绑定服务器的IP地址和端口号 Socket socket = new Socket("127.0.0.1",8888); //2.使用Socket对象中的方法getOutputStream()获取网络字节输出流OutputStream对象 OutputStream outputStream = socket.getOutputStream(); //3.使用网络字节输出流OutputStream对象中的 ...
Java笔记-网络编程入门
网络编程入门软件结构C/S软件结构全称为Client/Server结构,是指客户端和服务器结构。常见有即时聊天软件QQ等,下载软件百度(毒)云、迅雷等。是客户端与服务器之间的数据交换。
B/S结构全称为Browser/Server结构,是指浏览器和服务器结构。例通过浏览器打开淘宝的主页。
两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的协议下,实现两台计算机的通信的程序。
网络通信协议通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则。在计算机网络中,这些连接和通信的规则被称为网络通信协议,它对数据的传输格式、传输速率、传输步骤等做了统一规定,通信双方必须同时遵守才能完成数据交换。
TCP/IP协议传输控制协议/因特网互联协议( Transmission Control Protocol/Internet Protocol),是Internet最基本、最广泛的协议。它定义了计算机如何连入因特网,以及数据如何在它们之间传输的标准。它的内部包含一系列的用于处理数据通信的协议,并采用了4层的分层模型,每一 ...
恋爱回忆录
恋爱回忆录 爱情,从小时候的的懵懂无知,再到现在的冲动和欲望。从对美好的憧憬,到现在抖音快手上误导人的扭曲观念使我们产生的惧怕。我觉得爱情没有价值,现在人们的错误的爱情观使我们对谈恋爱变得敬而远之。当然,这也不是全部,我觉得我就是个特例,应该是我和我女朋友。
我们相遇在高中,高二时一个班,但是没有多大交际。在我的印象里她只是个坐在窗边的安静女孩,成绩平平,相貌平平,一切都是那么的平淡无奇,甚至容易让人忽略。就这样持续到了下半学期,我们相遇了。不知道因为什么原因,也许是我不记得了,不记得她为什么会拿着凳子来到我的座位旁听课,也不记得从什么时候开始聊的火热,但是我却很喜欢这种感觉,每次上课她没来总是习惯性的往后看,刻意的找她的眼神,会心地一笑,那种感觉很让人沉醉。但我还是清醒的,总害怕谈恋爱影响自己的学习,就压抑这种感觉,然后就产生了一种奇怪的现象,我觉得我对她的态度忽冷忽热,时近时远。
这种情况持续到了高三,好像是上天注定,我们又被分到了一个班,这也许是一个火花,一根引线。 高三的学习确实紧张,早上五点半起床,到晚上 ...
Android软件分享-美化篇
Android软件分享美化:简约Volume Style链接:https://pan.baidu.com/s/1fIbOqjYqLsI0KFhs-0ek4A提取码:cxa0
一个可以改变音量调节样式的软件 ,需要权限(开启时会跳转让给予权限)。
这里就是自动跳转到的权限给予界面,找到软件,然后改为开。
样式
原生Android样式
苹果样式
三星One UI样式
RGB
MIUI
不只是这样,还能在每个样式的基础上进行修改。
软件来源:酷安
lawanchair原生Pixel风格的桌面启动器,需要替换为默认启动器,有些厂商的桌面不能修改默认启动器,自己体验吧,我没有机器。
风格简约,可以自定义图标包(可以去酷安搜索图标包)。
效果图:
下载地址的话,我没提取安装包,百度云对大家也不友好,所以建议下载酷安,然后搜索名字就出来了。
第一个Volume Style酷安上面没有,所以分享百度云链接
会话微件这个就比较有意思了像上图的
就是这个实现的还有更多好用好看的小部件,倒计时、通知列表、一言插件等。感兴趣的大家自己去探索吧。下载方式于上边一样,下载酷 ...
Java笔记-类
类的定义定义一个类需要使用class关键字、例:
123456789101112[public][abstract|final]class<class_name>[extends<class_name>][implements<interface_name>] { // 定义属性部分 <property_type><property1>; <property_type><property2>; <property_type><property3>; … // 定义方法部分 function1(); function2(); function3(); …}
提示:上述语法中,中括号“[]”中的部分表示可以省略,竖线“|”表示“或关系”,例如 abstract|final,说明可以使用 abstract 或 final 关键字,但是两个关键字不能同时出现。
public:表示“共有”的意思。如果使用 ...
Java笔记-面向对象
面向对象面向对象简称 OO(Object Oriented),20 世纪 80 年代以后,有了面向对象分析(OOA)、 面向对象设计(OOD)、面向对象程序设计(OOP)等新的系统开发方式模型的研究。
对 Java 语言来说,一切皆是对象。把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作。一个个对象最终组成了完整的程序设计,这些对象可以是独立存在的,也可以是从别的对象继承过来的。对象之间通过相互作用传递信息,实现程序开发。
对象的概念Java 是面向对象的编程语言,对象就是面向对象程序设计的核心。所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。对象有以下特点:
对象具有属性和行为。
对象具有变化的状态。
对象具有唯一性。
对象都是某个类别的实例。
一切皆为对象,真实世界中的所有事物都可以视为对象。
例如,在真实世界的学校里,会有学生和老师等实体,学生有学号、姓名、所在班级等属性(数据),学生还有学习、提问、吃饭和走路等操作。学生只是抽象的描述,这个抽象的描述称为“类”。在学校里活动的是学生个体 ...
Java笔记-数组
数组在某些情况下,虽然可以使用单个变量来存储信息,但是如果需要存储的信息较多(例如存储 50 名学生的成绩),这时再依次创建变量声明并赋值显得非常麻烦。
随着处理的信息量越来越大,工作也就越来越烦琐,这时可以使用数组或集合来存储信息。通过使用数组,可以在很大程度上缩短和简化程序代码,从而提高应用程序的效率。
数组(array)是一种最简单的复合数据类型,它是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和不同的下标来确定数组中唯一的元素。根据数组的维度,可以将其分为一维数组、二维数组和多维数组等。
在计算机语言中数组是非常重要的集合类型,大部分计算机语言中数组具有如下三个基本特性:
一致性:数组只能保存相同数据类型元素,元素的数据类型可以是任何相同的数据类型。
有序性:数组中的元素是有序的,通过下标访问。
不可变性:数组一旦初始化,则长度(数组中元素的个数)不可变。
总的来说,数组具有以下特点:
数组可以是一维数组、二维数组或多维数组。
数值数组元素的默认值为 0,而引用元素的默认值为 null。
数组的索引从 0 开始,如果数组有 n 个元素, ...
Java笔记-循环语句
循环语句循环是程序中的重要流程结构之一。循环语句能够使程序代码重复执行,适用于需要重复一段代码直到满足特定条件为止的情况。
所有流行的编程语言中都有循环语句。Java 中采用的循环语句与C语言中的循环语句相似,主要有 while、do-while 和 for。另外 Java 5 之后推出了 for-each 循环语句,for-each 循环是 for 循环的变形,它是专门为集合遍历而设计的。for-each 并不是一个关键字。
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体。当反复执行这个循环体时,需要在合适的时候把循环条件改为假,从而结束循环,否则循环将一直执行下去,形成死循环。
循环语句可能包含如下 4 个部分。
初始化语句(init statement): 一条或多条语句,这些语句用于完成一些初始化工作,初始化语句在循环开始之前执行。
循环条件(test_expression):这是一个 boolean 表达式,这个表达式能决定是否执行循环体。
循环体(body_statement):这个部分是循环的主体,如果循环条件允许,这个代码块将 ...
Java笔记-选择语句
选择语句If语句if 语句是使用最多的条件分支结构,它属于选择语句,也可以称为条件语句。
if 选择结构是根据条件判断之后再做处理的一种语法结构。默认情况下,if 语句控制着下方紧跟的一条语句的执行。不过,通过语句块,if 语句可以控制多个语句。
123if (条件表达式) { 语句块;}
条件表达式`:条件表达式可以是任意一种逻辑表达式,最后返回的结果必须是一个布尔值。取值可以是一个单纯的布尔变量或常量,也可以是使用关系或布尔运算符的表达式。如果条件为真,那么执行语句块;如果条件为假,则语句块将被绕过而不被执行。
语句块`:该语句块可以是一条语句也可以是多条语句。如果仅有一条语句,可省略条件语句中的大括号 {}。当从编程规范角度不要省略大括号,省略大括号会使程序的可读性变差。
if-else 结构单 if 语句仅能在满足条件时使用,而无法执行任何其他操作(停止)。而结合 else 语句的 if 可以定义两个操作,此时的 if…else 语句表示“如果条件正确则执行一个操作,否则执行另一个操作”。
12345if (表达式) { 语句 ...