Water2Wine

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

网络编程

网络编程解决的问题有两个:

第一个问题是如何准确的定位网络桑一台或多台主机:定位主机上的特定应用,这个问题通过IP地址和端口号来解决;

第二个问题是找到主机后如何可靠高效的进行数据传输,这个问题由各种传输协议解决,主要包括TCP和UDP协议。

1. IP和端口号

IP

在java中使用InetAddress类代表IP

域名:通过DNS协议将域名转换为IP地址

本地回路地址:127.0.0.1 对应着:Localhost

如何实例化InetAddress:两个方法:getByName(String host),getLocalHost()

获取到InetAddress后的两个方法:getHostName获取IP地址,getHostAddress获取域名

端口号

用来标识正在计算机上运行的进程

端口号与IP地址的组合得出一个网络套接字:Socket

2. 网络通信协议

TCP网络编程

客户端

  1. 创建Socket对象,指明服务器端的ip和端口号

  2. 获取一个输出流,用于输出数据 getOutputStream

  3. 写出数据的操作

  4. 资源的关闭

服务端

  1. 创建服务器端的ServerSocket,指明自己的端口号

  2. 调用accept方法表示接受来自于客户端的socket

  3. 获取输入流 getInputStream

  4. 读取输入流中的数据

  5. 关闭资源

如果客户端要接收服务器端的数据的话,需要首先显式关闭数据流的输出,socket.shutdownOutput(),这样服务器端才会结束数据输入的while循环

UDP网络编程

DatagramSocket方法创建socket

DatagramPacket方法创建数据包,用socket发送packet

URL网络编程

URL(Uniform Resource Locator):统一资源定位符,它表示Internet上某一资源的地址

它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源

格式: https://localhost:8080/examples/beauty.jpg
协议 主机名 端口号 资源地址 参数列表

url.connection()可以将本地服务器与相应的url地址连接,从而进行数据的传输

posted on 2020-05-05 11:03  Water2Wine  阅读(180)  评论(0编辑  收藏  举报