黑马程序员:网络编程<二>

------- android培训java培训期待与您交流! ---------- 

客户端。
 1.服务端点。
 2.读取客户端已有的图片数据。
 3.通过socket输出流将数据发给服务端。
 4.读取服务端反馈信息。
 5.关闭。

网络编程(TCP-客户端并发登录)
 客户端通过键盘录入用户名。
 服务端对这个用户名进行校验。

 如果该用户存在,在服务端显示XXX,已登录。
 并在客户端显示XXX,欢迎光临。

 如果该用户不存在,在服务端显示XXX,尝试登录。
 并在客户端显示XXX,该用户不存在。

 最多就登录三次。

网络编程(浏览器客户端-自定义服务端)

 演示客户端和服务端
 1)客户端:浏览器
 服务端:自定义

 2)两种客户端发请求演示的方式。
 <1>浏览器:http://192.168.0.4:22000

 <2>telnet命令:telnet 192.168.0.4 22000

 2.
 1)客户端:浏览器
 服务端:Tomcat服务器。
 Tomcat8080端口,打开startup.bat启动Tomcat服务器后,
 在浏览器中输入http://192.168.0.4:8080即可访问Tomcat主页。

 客户端:浏览器。
 服务端:Tomcat服务器(端口是8080)。

 步骤:
 1)先用浏览器访问自定义的服务端,从服务端查看接收到的客户端信息。
 2)依照同样的客户端信息自定义浏览器,对Tomcat服务器进行访问。

网络编程(自定义图形界面浏览器-Tomcat服务器)

注:自定义的图形界面浏览器没有解析功能。会接受到更多的服务端信息,
 因为浏览器走的是应当层,而我们自定义的浏览器走的是传输层,没有进行拆包
 ,将http 协议封装的数据全部拿到了,所以显示出来的信息较多

网络编程(URL-URLConnection

 1.URLjava.net包)

  1)类 URL 代表一个统一资源定位符,它是指向互联网资源的指针。资源可以是简单的文件或目录,
  也可以是对更为复杂的对象的引用,例如对数据库或搜索引擎的查询。  URL 可选择指定一个端口,它是用于建立到远程主机 TCP 连接的端口号。如果未指定该端口号,
  则使用协议默认的端口。例如,http 协议的默认端口为 80
  2)构造方法摘要 
  URL(String spec) 
     根据 String 表示形式创建 URL 对象。 
  URL(String protocol, String host, int port, String file) 
     根据指定 protocolhostport 号和 file 创建 URL 对象。 
  URL(String protocol, String host, int port, String file, URLStreamHandler handler) 
     根据指定的 protocolhostport 号、file 和 handler 创建 URL 对象。 
  URL(String protocol, String host, String file) 
     根据指定的 protocol 名称、host 名称和 file 名称创建 URL。 
  3)方法摘要
  int getDefaultPort() 
     获取与此 URL 关联协议的默认端口号。 
  String getFile() 
     获取此 URL 的文件名。 
  String getHost() 
     获取此 URL 的主机名(如果适用)。 
  String getPath() 
     获取此 URL 的路径部分。 
  int getPort() 
     获取此 URL 的端口号。 
  String getProtocol() 
     获取此 URL 的协议名称。 
  String getQuery() 
     获取此 URL 的查询部分。 
  URLConnection openConnection() 
     返回一个 URLConnection 对象,它表示到 URL 所引用的远程对象的连接。 
  InputStream openStream() 
     打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream

  注:
  openStream():
  public final InputStream openStream()
         throws IOException
  打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。此方法是下面方法的缩写: 
   openConnection().getInputStream()

 2.类 URLConnectionjava.net包)

  直接已知子类: 
  HttpURLConnection, JarURLConnection
  1)抽象类 URLConnection 是所有类的超类,它代表应用程序和 URL 之间的通信链接。
  此类的实例可用于读取和写入此 URL 引用的资源。通常,创建一个到 URL 的连接需要几个步骤:
  <1>通过在 URL 上调用 openConnection 方法创建连接对象。 
  <2>处理设置参数和一般请求属性。 
  <3>使用 connect 方法建立到远程对象的实际连接。 
  <4>远程对象变为可用。远程对象的头字段和内容变为可访问。 
  使用以下方法修改设置参数:

  setAllowUserInteraction 
  setDoInput 
  setDoOutput 
  setIfModifiedSince 
  setUseCaches 
  使用以下方法修改一般请求属性:

  setRequestProperty 
  使用 setDefaultAllowUserInteraction 和 setDefaultUseCaches 可设置 AllowUserInteraction 和 UseCaches 参数的默认值。

  上面每个 set 方法都有一个用于获取参数值或一般请求属性值的对应 get 方法。适用的具体参数和一般请求属性取决于协议。

  在建立到远程对象的连接后,以下方法用于访问头字段和内容:

  getContent 
  getHeaderField 
  getInputStream 
  getOutputStream 
  某些头字段需要经常访问。以下方法:

  getContentEncoding 
  getContentLength 
  getContentType 
  getDate 
  getExpiration 
  getLastModifed 
  提供对这些字段的便捷访问。getContent 方法使用 getContentType 方法以确定远程对象类型;子类重写 getContentType 方法很容易。

  一般情况下,所有的预连接参数和一般请求属性都可忽略:预连接参数和一般请求属性默认为敏感值。对于此接口的大多数客户端而言,只有两个需要的方法:getInputStream 和 getContent,它们通过便捷方法镜像到 URL 类中。
  2)构造方法摘要 
  protected  URLConnection(URL url) 
     构造一个到指定 URL 的 URL 连接。 
  3)方法摘要 
  void addRequestProperty(String key, String value) 
     添加由键值对指定的一般请求属性。 
  abstract  void connect() 
     打开到此 URL 引用的资源的通信链接(如果尚未建立这样的连接)。 
  long getIfModifiedSince() 
     返回此对象的 ifModifiedSince 字段的值。 
  InputStream getInputStream() 
     返回从此打开的连接读取的输入流。 
  long getLastModified() 
     返回 last-modified 头字段的值。 
  OutputStream getOutputStream() 
     返回写入到此连接的输出流。 
  Object getContent() 
     获取此 URL 连接的内容。 
  int getContentLength() 
     返回 content-length 头字段的值。 
  String getContentType() 
     返回 content-type 头字段的值。 
  long getDate() 
     返回 date 头字段的值。

 注意:
  1URLConnection 类可以拆包(使用应用层的协议对数据进行拆包)解析服务端发送过来的头字段数据,而只读取正文主体。
  不再显示响应头。它封装了http协议和Socket对象,故该数据处理发生在应用层。
  2)异常:
  未报告的异常 java.net.MalformedURLException;必须对其进行捕捉或
  声明以便抛出
     URL url = new URL("http://192.168.0.4:8080/htm/wenmi.html?name=haha&age=25");


网络编程(小知识点)
 1.Socket中:

  1)构造方法摘要 
   Socket() 
     通过系统默认类型的 SocketImpl 创建未连接套接字 
  2)需要方法:
  void connect(SocketAddress endpoint) 
     将此套接字连接到服务器。

 2.类 SocketAddressjava.net

  此类表示不带任何协议附件的 Socket Address。作为一个抽象类,应通过特定的、协议相关的实现为其创建子类。

  它提供不可变对象,供套接字用于绑定、连接或用作返回值。

 3.SocketAddressjava.net------>InetSocketAddress

  1)此类实现 IP 套接字地址(IP 地址 端口号)。它还可以是一个对(主机名 端口号),在此情况下,
  将尝试解析主机名。如果解析失败,则该地址将被视为未解析 地址,但是其在某些情形下仍然可以使用,
  比如通过代理连接。

  它提供不可变对象,供套接字用于绑定、连接或用作返回值。

  通配符 是一个特殊的本地 IP 地址。它通常表示任何,只能用于 bind 操作。
  2)构造方法摘要 
  InetSocketAddress(InetAddress addr, int port) 
     根据 IP 地址和端口号创建套接字地址。

 4.ServerSocket中:

  构造方法摘要 
  ServerSocket(int port, int backlog) 
     利用指定的 backlog 创建服务器套接字并将其绑定到指定的本地端口号。
  参数:
  port - 指定的端口;或者为 0,表示使用任何空闲端口。
  backlog - 队列的最大长度。即主机可同时被访问的最多人数。

网络编程(域名解析)

 1. 当访问主机时,先找的是本地(即C盘的ip映射文件),本地没有再到外面去找。
  在本地找到的话,本地就把地址给浏览器。

本机网IP:127.0.0.1

 2.配置映射关系的好处:

  1)将要访问的网站配置到hosts文件,则可极大地提高访问速度。因为减少了访问解析的路程。
  2)有些收费软件使用时,会自动到网站更新,从而会影响使用,将更新网站的主机名在hosts文件中进行配置。
  则网站就不会再更新了,因为它走的是本地地址,所以更新失败。如:#127.0.0.1  
  3)将恶意网站在hosts文件中进行配置,则会屏蔽恶意网站。

 3.本地连接--->属性---->Internet协议(TCP/IP)--->双击后可配置DNS

------- android培训java培训期待与您交流! ---------- 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值