1.概述
- 进程和另一台主机上的进程建立连接
- 任务
- 找到对方主机
- 完成数据传输
- java.net包
- 提供基于流通信
- 提供基于包通信
2.URL
统一资源定位符(Uniform Resource Locator),
- URL表示Internet上某一资源的地址。
- 当创建URL时发生错误,系统会产生异常MalformedURLException,
- 这是非运行时异常,必须在程序中捕获处理。
3.IP地址
IP地址由32 位IPv4 或 128 位 IPv6 无符号数字构成,
- 可以唯一确定Internet上一台主机。
4.TCP/UDP
- Socket
套接字
- 用来将网络数据流连接到程序上。
- 可以看做是不同主机之间的进程进行双向通信的端点,
- 用套接字中的相关函数来完成通信过程。
- 对于一个特定的网络连接,连接两端的计算机中各有一个套接字,这两个套接字之间有一条网络线路。
- 服务端程序和客户端程序都通过套接字与网络线路打交道,从而可以忽略网络线路的硬件细节
- 流套接字: Socket,ServerSocket
- 用TCP
- 数据报套接字 DategramSocket
- 用UDP
5 .建立服务器
- 1.创建一个ServerSocket对象。
- 可调用ServerSocket的构造函数:
- public ServerSocket(int port, int queueLength)
- throws IOException,BindException
- 例如:ServerSocket server=new ServerSocket(5776,100)
- 2.通过调用ServerSocket的accept方法等待客户端连接;
- 若连接建立,则返回一个Socket对象,并通过该对象管理每个客户端连接。
- Socket connection=server.accept(); 调用sever.accept()函数 返回一个Socket对象
- 3.获得OutputStream和InputStream对象,通过发送和接收字节,使服务器能与客户端通信。
- 服务器调用Socket的getOutputStream/getInputStream获得输出流/输入流引用。利用 OutputStream的write方法和InputStream的read方法,可以发送和接收单个字节或者字节序列。
- 4.处理阶段,服务器和客户端通过OutputStream和InputStream对象通信。
- 5.传输完成时,服务器对流和Socket调用close方法,关闭连接。
6.建立客户端
- 1.需创建一个连接到服务器的Socket,可使用Socket的构造函数,将其连接到服务器上。例如:Socket connection=new Socket( serverAddress, port);创建一个流套接字并将其连接到指定 IP 地址的指定端口号。
- 2.客户端使用Socket的方法getOutputStream/getInputStream,分别获得输出/输入流引用。也可套接其他输入输出流类,增强其输入输出功能。如服务器使用某种形式发送信息,则客户端也必须使用相同的形式接收信息。如:服务端使用ObjectOutputStream发送值,则客户端应使用ObjectInputstream读取这些信息。
- 3.处理阶段,服务器和客户端使用OutputStream和InputStream对象引用进行通信。
- 4.当传输完成时,客户端会对流和Socket调用close方法,关闭连接。