常见的client和服务端

client:

      浏览器:IE:弹窗体,猎豹:弹窗体。多标签,争强效果

服务端:

      server:TomCat:1.处理请求 2.给予应答

想让TomCat为我们工作。那么java写的相关类类必须实现interface Serverlet

浏览器强大之处就在于解析能力,众多格式,都能够解析

服务端和client原理

自己定义服务端:

public static void main(String[] args) throws IOException {ServerSocket ss = new ServerSocket(9090);//Tomcat是8080Socket socket = ss.accept();InputStream in = socket.getInputStream();System.out.println("ip : "+socket.getInetAddress().getHostAddress());byte[] buf = new byte[1024];int len = in.read(buf);String text = new String(buf,0,len);System.out.println(text);PrintWriter out = new PrintWriter(socket.getOutputStream(),true);out.println("你好");socket.close();ss.close();}

使用已有的clientIE,了解client给服务端发送的什么请求?

请求行: 请求方式 /1.html 请求资源路径:http协议版本号

请求消息头:属性名:属性值

请求体

模拟一个浏览器获取信息

  public static void main(String[] args) throws IOException {Socket s = new Socket("192.168.1.1",8080);//向tomcat获取。浏览器信息PrintWriter out = new PrintWriter(s.getOutputStream(),true);out.println("GET / HTTP /.....");out.println("....");out.println("....");out.println("....");out.println("....");out.println("....");InputStream in = s.getInputStream();byte[] buf = new byte[1024];int len = in.read(buf);String line = new String(buf,0,len);System.out.println(line);//得到就是本地写的html代码s.close();}

得到的应答:

应答行:http的协议版本号 应答状态码 应答状态描写叙述信息

应答消息属性。 属性名: 属性值

应答体:->上述的html源代码

PS:浏览器太难写了,所以众多厂商都是应用原有的IE的内核


类URL

URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。

资源能够是简单的文件或文件夹,也能够是对更为复杂的对象的引用。比如对数据库或搜索引擎的查询

每一个URL都是URI,但不是每一个URI都是URL

    public static void URL_Demo() throws MalformedURLException {String strurl = "http://127.0.0.1:8080/myhtml/1.html?

name=wang"; //http://www.baidu.com/baidu?word=java,在百度地址栏搜索java URL url = new URL(strurl); System.out.println("Protocol:"+url.getProtocol());//获取主机协议 System.out.println("Host:"+url.getHost());//获取主机名 System.out.println("Port:"+url.getPort());//获取port System.out.println("File:"+url.getFile());//获取文件 System.out.println("Path:"+url.getPath());//获取路径部分 System.out.println("Query:"+url.getQuery());//获取查询部分 }

Protocol:http
Host:127.0.0.1
Port:8080
File:/myhtml/1.html?name=wang
Path:/myhtml/1.html
Query:name=wang

public static void URL_Demo() throws IOException {String strurl = "http://127.0.0.1:8080/myhtml/1.html?

name=wang"; URL url = new URL(strurl); InputStream in = url.openStream();//打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。 /* * 原理: * openConnection() * 返回一个 URLConnection 对象。它表示到 URL 所引用的远程对象的连接。

* URLConnection conn = url.openConnection(); * System.out.println(connection); * 底层封装完了关于url的http的解析方式。这个对象就是java内置的能够解析详细协议的对象+socket * URLConnection类中 * 1.String str = conn.getHeaderField("Contend-Type"); * System.out.println(str);//应答一个文本类型的消息 * 然后就能够依据应答的结果。推断文本是何类型,依据指定的解析器,解析数据 * 实际上用的是Socket,加协议 * 2.InputStream in = conn.GetInputStream();相同得到1.html的应答体 * * 所以url.openStream()的原理就是: * URLConnection conn = url.openConnection(); * InputStream in = conn.GetInputStream(); */ byte[] buf = new byte[1024]; int len = in.read(buf); String str = new String(buf,0,len); System.out.println(str);//得到1.html的应答体,url帮助解析成html源代码 in.close(); }


常见的网络架构
1.C/S: client / server (客户端。服务端)

早期:

    VC++,VB都是做C/S

特点:

    该结构的软件,client和服务端都须要编写,开发成本高。维护麻烦

优点:

    client在本地能够分担一部分运算。360杀毒,游戏的3D效果都是在本地运算

2.B/S :browser / server(浏览器,服务端)

特点:

     该结构的软件,仅仅开发服务端,client直接由浏览器取代

     开发成本相对低。维护更为简单

缺点:全部运算都是在server

转载于:https://www.cnblogs.com/lxjshuju/p/6826292.html

JAVA学习第六十三课 — 关于client服务端 amp;amp; URL类 amp; URLConnection相关推荐

  1. JavaScript学习(六十三)—typeof和instanceof检测数据类型的异同

    JavaScript学习(六十三)-typeof和instanceof检测数据类型的异同 一.JavaScript中的数据类型 在JavaScript中,我们把数据可以分为原始类型和引用数据类型. 原 ...

  2. Java学习笔记 六、面向对象编程中级部分

    Java学习笔记 六.面向对象编程中级部分 包 包的注意事项和使用细节 访问修饰符 访问修饰符的注意事项和使用细节 面向对象编程三大特征 封装 封装的实现步骤(三步) 继承 继承的细节问题 继承的本质 ...

  3. java毕业设计儿童疫苗接种提醒系统小程序服务端Mybatis+系统+数据库+调试部署

    java毕业设计儿童疫苗接种提醒系统小程序服务端Mybatis+系统+数据库+调试部署 java毕业设计儿童疫苗接种提醒系统小程序服务端Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构 ...

  4. java自动化测试成长日记-之CVS客户端和服务端安装和部署1:CVS服务端的配置和基本使用...

    CVS服务端的配置和基本使用 在做java自动化测试集成环境搭建的时候,无论怎样,你都会选择一个源代码管理工具,如:SVN,CVS,VSS等:但如果你使用Eclipse工具,建议你使用CVS源代码管理 ...

  5. Java IOS客户端上传多张图片到服务端

    Java IOS客户端上传多张图片到服务端 业务场景:用户相册需要上传多张图片到服务器,上限为12张.本文主要介绍Java服务端的文件和流的处理. 下图为iOS端和服务端最终结果一览.  iOS端 : ...

  6. java程序编六角星_跨平台移动端解决方案—Weex

    跨端方案背景 一 1 起因 由于客户端Webview内嵌H5的各种受限,例如性能差.JS执行效率低以及伴随着大量的机型兼容问题,于是有了各种混合跨端开发解决方案:Hybrid.React-Native ...

  7. java web启动socket_javaweb启动时启动socket服务端代码实现

    这篇文章主要介绍了javaweb启动时启动socket服务端代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 说明:在javaweb项目启动的 ...

  8. ESP32学习笔记(30)——BLE GATT服务端自定义服务和特征

    一.简介 1.1 低功耗蓝牙(BLE)协议栈 链路层(LL) 控制设备的射频状态,有五个设备状态:待机.广播.扫描.初始化和连接. 广播 为广播数据包,而 扫描 则是监听广播. GAP通信中角色,中心 ...

  9. Java程序中Socket(关于客户端和服务端实例)

    例如:客户端将d:\1.jpg图片文件上传给服务端,服务端收到后保存到d:\java\a.jpg,服务器端接收完成后,发送"上传成功"回应客户端. 一:客户端实现 package ...

  10. java大话西游单机版,【大话西游】手工架设服务端+双客户端+加密解密全套工具...

    [大话西游]手工架设服务端+双客户端+加密解密全套工具_站长网(Downzz.com) 安装说明: 服务器系统 Windows Server 2008 R2 1.首先第一步把需要的运行工具以及所需工具 ...

最新文章

  1. 【Vegas原创】“無法解析 equal to 動作的定序衝突”错误的处理
  2. 解决Oracle jdbc驱动包maven下载失败问题
  3. iOS 13 真机调试包
  4. 给定一个n节点的二叉树,写出一个O(n)时间递归过程,将该树每个节点关键字输出(算法导论第十章10.4-2)
  5. C语言 函数指针 - C语言零基础入门教程
  6. 填涂颜色(洛谷-P1162)
  7. [译转] eBPF 概念和基本原理
  8. 结对-贪吃蛇游戏-需求分析
  9. Spring 通知和顾问进行增强
  10. Your port 80 is actually used by : Server: Microsoft-IIS/10.0 Cannot install the Apache service, p
  11. JS设计模式 - 单例模式
  12. P0 口输出级具有能带 8个 LSTTL 门负载能力(指每个端口线例如P0.0P0.1每条位线,而不是整个P0口反证P2地址高8位,如果只能带4个怎么用)这个是门电路的扇出系数也就扇出带门负载能力
  13. 智能快递柜 软件架构 linux,13.智能快递柜(对接流程)
  14. springboot整合mybatis,使用逆向工程和使用通用mapper的方式
  15. 自己动手搭建网站:域名和云服务器选购
  16. 简述raid 0 1 5 10的区别
  17. openCV ROI
  18. 英文简历格式(吴军个人网页)
  19. 抵抗勒索病毒的正确姿势——不要上来就封端口!
  20. SaaSBase:最受欢迎的ERP软件有哪些

热门文章

  1. java排序方式(冒泡,选择,JDK)
  2. JavaScript 页面刷新方式汇总
  3. Java SE 基础:List 集合列表
  4. 项目太大 传不到服务器,上传大文件的解决方案
  5. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_02 递归_4_练习_递归打印多级目录...
  6. web-4. 装饰页面的图像
  7. Hibernate(六):映射一对多关联关系、双向一对多映射
  8. 给你的应用“一只”智慧的眼睛 —— Barcode常识普及以及识别信息处理
  9. 获得select下拉框的值
  10. 【2012.1.24更新】不要再在网上搜索eclipse的汉化包了!