编程技能强化代码知识点整理

简介: 编程技能强化代码知识点整理

一.网络编程


1.url.ParseURL源代码



运行结果



2.url. URLReader源代码



3.url.URLConnectionReader源代码



4.url. URLdownload源代码


该例子用网络图片的url地址,从网络下载一张图片,并保存在本地硬盘的e盘的images文件夹,图片重命名为“百度1.jsp”



5.发送和接收网络数据


该例子包含两个程序,一个是客户端,用于连接服务器端,发送数据给服务器端,并接收服务器端的数据,实现代码是:



根据上述代码可知,连接的服务器地址是:


http://localhost:8080/ServerWeb/ReverseServlet, 即本地服务器中ServerWeb项目的一个Servlet。该Servlet的作用是接收客户端发送的字符串,反序后,发送回客户端,即客户端发送出一个字符串,收到该字符串的反序。


ServerWeb项目是一个Web项目,其中Servlet中的关键代码是:


request.setCharacterEncoding("utf-8");
String reverseStr = "no string";
String string = request.getParameter("string");//接收客户端传过来的字符串
if(string!=null){
reverseStr=new StringBuffer(string).reverse().toString();//把字符串反序
}
System.out.println(reverseStr);//打印出反序后的字符串
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
out.print(reverseStr);//返回给客户端
out.flush();
out.close();


运行时先运行服务器端,然后运行客户端。


客户端结果,输入“你好中国”,接收到反序的字符串:



服务器端结果,启动服务器后,接收到客户端的字符串,并反序打印出来:



6.单客户端和服务器端的案例代码


基于TCP协议的网络编程可以实现C/S结构的程序,C客户端发送数据,S服务器端接收数据后发回给客户端,客户端接收后输出到屏幕。客户端通过创建Socket连接服务器,服务器端监听到连接后,也创建Socket,两端的Socket连在一起,形成一个输出输出流,客户端发送消息,用输出流,服务器端接收消息用输入流,反之亦然。




运行时,先运行服务器端,再运行客户端,在客户端输入数据,发送给服务器,服务器接收后再返回给客户端,客户端接收后打印到屏幕。



7.多客户端和单服务端的案例代码


该例子可以实现多个客户端的聊天室功能,即任何一个客户端发送消息给服务器,服务器会转发给所有与它连接的客户端。因为服务器要维护与多个客户端的连接,这里用线程实现,每个客户端和服务器端连接后,服务器端都会开启一个线程,用于接收当前这个客户端的消息,并转发给所有的客户端。


该例子由3个Java类实现,客户端:tcp. EchoMultiClient,服务器端:tcp. EchoMultiServer,tcp.EchoServerThread(服务器端使用的线程类)。


客户端类,该客户端发送消息和接收消息分别在一个线程中进行:



服务器端代码,该代码中每监听到客户端的一个连接,就调用线程类创建并启动一个线程对象。



服务器端使用的线程类代码:



该程序运行时,先启动服务器端代码,再多次启动客户端。


例如以下运行效果,启动了服务器端后,启动了3次客户端,3个客户端分别发送消息,效果如下:



8.单客户端和服务器端的案例代码


基于UDP协议的网络编程通信原理和TCP协议不同,基于TCP协议的通信是客户端和服务器端建立连接管道,这个管道就像一个输出输出流,发送消息使用输出流,接收消息使用输入流;基于UDP协议的通信不建立连接,一端向另一端发送消息需要创建数据报,数据报中包含目标地址和要发送的内容。


该例实现了客户端向服务器端发送消息,服务器端收到后,提取出内容和客户端的地址,把消息再发回给客户端。




从以上代码可以看出,客户端和服务器端发送和接收消息的原理类似,区别只是服务器端绑定了固定的端口号,而客户端不用绑定固定端口号。


先运行服务器端代码,再运行客户端代码,效果如下:



9.基于UDP的广播数据报的发送和接收


基于UDP协议,可以发送广播数据报,即发送一个数据报出去,目标地址是多台主机。接收广播数据报需要使用MulticastSocket类。


该例的客户端实现了两个线程,一个线程使用DatagramSocket发送数据报给服务器;另一个线程使用MulticastSocket绑定固定端口4446,加入广播地址230.0.0.1,接收来自服务器的广播数据。


该例的服务器端接收到客户端的数据报后,把内容封装成广播数据报,广播地址是230.0.0.1,把广播数据报发送出去。该例的客户端可以接收到。




相关文章
|
2月前
|
机器学习/深度学习 算法 数据可视化
高效记录并整理编程学习笔记:打造你的编程知识宝库
高效记录并整理编程学习笔记:打造你的编程知识宝库
|
2月前
|
机器学习/深度学习 人工智能 Kubernetes
技术探索之旅:从基础到进阶的心得体会
本文记录了作者在技术领域的学习和实践过程中积累的经验与感悟。文章涵盖了从基础知识的学习、项目实践,到新技术的探索与应用,最终总结出几点对未来技术发展的思考。希望这些分享能够启发更多的技术爱好者,共同进步。
|
4月前
|
搜索推荐 测试技术 持续交付
软件测试的艺术:从基础到进阶
在数字时代的浪潮中,软件测试是确保质量的灯塔。本文将带你航行于测试的海洋,探索如何从初学者成长为资深专家。通过深入浅出的方式,我们将一起学习如何搭建测试框架,设计高效的测试用例,并掌握自动化测试工具的使用。无论你是刚刚起步,还是希望提升技能,这篇文章都将是你的指南针,指引你走向软件测试的高峰。
|
4月前
|
机器学习/深度学习 人工智能 测试技术
软件测试的艺术:从基础到进阶的探索之旅
在数字时代的浪潮中,软件测试作为确保产品质量的重要环节,其重要性不言而喻。本文将通过一系列生动的案例和深入的分析,探讨软件测试的核心概念、方法以及发展趋势,旨在为读者提供一条从入门到精通的软件测试之路。我们将一起见证,如何通过系统化的测试策略和方法,将潜在的风险转化为产品的优势,确保软件在快速迭代的同时,依旧保持高质量标准。
|
Cloud Native 程序员 Go
从项目中突显技能:在面试中讲述你的编程故事
从项目中突显技能:在面试中讲述你的编程故事
80 0
|
Cloud Native 程序员 Go
程序员面试中的测试驱动开发:如何展示你的编程范式
程序员面试中的测试驱动开发:如何展示你的编程范式
96 0
|
敏捷开发 算法 Cloud Native
面试中的代码写作:如何撰写清晰、高效的示例代码
面试中的代码写作:如何撰写清晰、高效的示例代码
113 0
|
缓存 算法 大数据
架构、框架侃侃而谈算法望而却步?吃透这份笔记轻松掌握算法技能
腾讯、百度阿里等国内的一线名企,在招聘工程师的过程中,对算法和数据结构都会重点考察。但算法易学难精,让很多程序员都望而却步,面试时总败在算法这一关,拿不到好 Offer。 面试时很多候选人,聊起架构、框架侃侃而谈,但一写代码,就暴露真实水平。说白了,还是基本功不够扎实。 其实,不管你是什么语言,基本功一定要扎实,最核心的一定是数据结构与算法。也因此,所有大厂面试,都必考算法题。
|
开发框架 运维 前端开发
万丈高楼平地起,知识点拆解,带你攻破前端开发技能,一起坚持分阶段的巩固复习。
万丈高楼平地起,知识点拆解,带你攻破前端开发技能,一起坚持分阶段的巩固复习。
|
前端开发
前端知识案例学习13-技能条效果实现
前端知识案例学习13-技能条效果实现
91 0
前端知识案例学习13-技能条效果实现