论文部分内容阅读
随着网络技术的飞速发展,互联网的普及范围也越来越广,已经成为当前影响力最大的网络应用开发平台,各个开发商以及编程人员都需要严格遵守其基本准则。JAVA 语言具有多线程、一次编写以及与平台没有直接关联等特性,非常适应互联网平台网络应用开发。因此 Java语言 在当今信息时代极具影响力。
在Java语言中,TCP 网络程序是指利用 Socket 编写的通信程序。利用 TCP 协议进行通信的两个应用程序是有主次之分的,一个是服务器程序,一个是客户端程序,两者的功能和编写方法不太一样。其中 ServerSocket 类表示 Socket 服务器端,Socket 类表示 Socket 客户端,两者之间的交互过程如下:
(1)服务器端创建一个 ServerSocket(服务器端套接字),调用 accept()方法等待客户端来连接。
(2)客户端程序创建一个 Socket,请求与服务器建立连接。
(3)服务器接收客户的连接请求,同时创建一个新的 Socket 与客户建立连接,服务器继续等待新的请求。
一、使用 TCP/IP 协议
TCP/IP 协议是一种面向连接的保证可靠传输的协议,通过 TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接收方必须成对地建立两个 socket 连接,以便在 TCP 协议的基础上进行通信,当一个socket(通常都是 server socket)等待建立连接时,另一个 socket 可以要求进行连接,一旦这两个 socket 连接起来,它们就可以进行双向数据传输,双方都可以进行发送或接收操作。
二、使用 UDP 协议
UDP 协议是一种无连接的协议,不保证信息的可靠传输,由Java 技 术 中 的 DatagramSocket 和 DatagramPacket 类 支 持。DatagramSocket 对应 TCP/IP 协议下的 Socket 概念,但不需要创建两个 socket,不可使用输入输出流。DatagramPacket 数据包,是 UDP 协议下进行传输数据的单位,数据存放在字节数组中,其中包括了目标地址和端口以及传送的信息(所以不用建立点对点的连接)。由于 TCP/IP 协议能够提供可靠的数据传输,如何在发送方和接收方建立 Socket 连接是关键的步骤。
三、基于 TCP/IP 协议的 Socket 连接方法
Java 中 Socket 连接的建立是通过 Socket 类实现的,通过重载的构造函数可以直接连接服务器,也可以建立未连接的 Socket 对象,并通过 connect 方法来连接服务器。此外,还支持自动或手动方式选择本机的 IP 地址。
1.通过构造函数直接连接服务器
(1)自动选择 IP。
这种方式是最常用的。使用的构造函数有如下两种:在使用时只需要提供一个字符串类型的 IP 地址或域名以及一个整型的端口号即可,可能会抛出两个异常:UnknownHostException(提供的host并不存在或不合法)和IOException(其它的错误)。这个构造函数只是将字符串形式的 host改为 InetAddress对象类型了,从而支持使用 Socket 类多次连接同一个IP或域名,效率比较高。在这个构造函数中只会发生IOException 异常,
UnknownHostException 异常由 InetAddress 类抛出。
(2)手动绑定 IP。
当本机有多块网卡或者在一个网卡上绑定了多个 IP 时,在连接服务器时也可以通过构造函数指定需要使用哪个 IP。这时可以使用 Socket 类的另外两个构造函数来处理。这两个构造函数的参数分为两部分,第一部分为前两个参数分别表示要连接的服务器的 IP 和端口号。第二部分为后两个参数,其中 inetaddress1 表示要使用的本地 IP,而localPort则表示要绑定的本地端口号,在一般情况下将 localPort 设为 0。
(3)通过 connect 方法连接服务器
可以先建立未连接的 Socket 对象,再通过类的 connect 方法来连接服务器,还可以通过类的 bind 方法来绑定本地 IP。
四、结束语
TCP、UDP 和IP协议是网络操作系统的内核,对用户应用程序是透明的,用户通过 TCP/IP 的编程界面调用这些内核程序,从而开发应用程序。编程界面有两种形式,一种是由网络操作系统内核为用户应用程序提供系统功能调用,另一种就是所谓的套接字(Socket)。套接字本质上就是一種函数调用(函数库),用户通过这些函数编写 TCP/IP 应用程序Java 网络编程可以支持多种协议,而在 TCP/IP 协议下建立Socket 连接也有多种方法,其中 IP 地址和网关的设置都会影响连接的建立,还需要在应用时由编程者保证代码执行后连接的建立,才能执行之后的收发双方 I/O 通道的建立及通信过程。
参考文献
[1]王常衡,任广鹏,罗钦,et al.基于TCP的Socket网络编程[J].科技经济导刊,2019,27(07):42.
[2]张雪坤.基于Socket的网络聊天程序设计与实现[J].电脑编程技巧与维护,2018(4):16-17.
在Java语言中,TCP 网络程序是指利用 Socket 编写的通信程序。利用 TCP 协议进行通信的两个应用程序是有主次之分的,一个是服务器程序,一个是客户端程序,两者的功能和编写方法不太一样。其中 ServerSocket 类表示 Socket 服务器端,Socket 类表示 Socket 客户端,两者之间的交互过程如下:
(1)服务器端创建一个 ServerSocket(服务器端套接字),调用 accept()方法等待客户端来连接。
(2)客户端程序创建一个 Socket,请求与服务器建立连接。
(3)服务器接收客户的连接请求,同时创建一个新的 Socket 与客户建立连接,服务器继续等待新的请求。
一、使用 TCP/IP 协议
TCP/IP 协议是一种面向连接的保证可靠传输的协议,通过 TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接收方必须成对地建立两个 socket 连接,以便在 TCP 协议的基础上进行通信,当一个socket(通常都是 server socket)等待建立连接时,另一个 socket 可以要求进行连接,一旦这两个 socket 连接起来,它们就可以进行双向数据传输,双方都可以进行发送或接收操作。
二、使用 UDP 协议
UDP 协议是一种无连接的协议,不保证信息的可靠传输,由Java 技 术 中 的 DatagramSocket 和 DatagramPacket 类 支 持。DatagramSocket 对应 TCP/IP 协议下的 Socket 概念,但不需要创建两个 socket,不可使用输入输出流。DatagramPacket 数据包,是 UDP 协议下进行传输数据的单位,数据存放在字节数组中,其中包括了目标地址和端口以及传送的信息(所以不用建立点对点的连接)。由于 TCP/IP 协议能够提供可靠的数据传输,如何在发送方和接收方建立 Socket 连接是关键的步骤。
三、基于 TCP/IP 协议的 Socket 连接方法
Java 中 Socket 连接的建立是通过 Socket 类实现的,通过重载的构造函数可以直接连接服务器,也可以建立未连接的 Socket 对象,并通过 connect 方法来连接服务器。此外,还支持自动或手动方式选择本机的 IP 地址。
1.通过构造函数直接连接服务器
(1)自动选择 IP。
这种方式是最常用的。使用的构造函数有如下两种:在使用时只需要提供一个字符串类型的 IP 地址或域名以及一个整型的端口号即可,可能会抛出两个异常:UnknownHostException(提供的host并不存在或不合法)和IOException(其它的错误)。这个构造函数只是将字符串形式的 host改为 InetAddress对象类型了,从而支持使用 Socket 类多次连接同一个IP或域名,效率比较高。在这个构造函数中只会发生IOException 异常,
UnknownHostException 异常由 InetAddress 类抛出。
(2)手动绑定 IP。
当本机有多块网卡或者在一个网卡上绑定了多个 IP 时,在连接服务器时也可以通过构造函数指定需要使用哪个 IP。这时可以使用 Socket 类的另外两个构造函数来处理。这两个构造函数的参数分为两部分,第一部分为前两个参数分别表示要连接的服务器的 IP 和端口号。第二部分为后两个参数,其中 inetaddress1 表示要使用的本地 IP,而localPort则表示要绑定的本地端口号,在一般情况下将 localPort 设为 0。
(3)通过 connect 方法连接服务器
可以先建立未连接的 Socket 对象,再通过类的 connect 方法来连接服务器,还可以通过类的 bind 方法来绑定本地 IP。
四、结束语
TCP、UDP 和IP协议是网络操作系统的内核,对用户应用程序是透明的,用户通过 TCP/IP 的编程界面调用这些内核程序,从而开发应用程序。编程界面有两种形式,一种是由网络操作系统内核为用户应用程序提供系统功能调用,另一种就是所谓的套接字(Socket)。套接字本质上就是一種函数调用(函数库),用户通过这些函数编写 TCP/IP 应用程序Java 网络编程可以支持多种协议,而在 TCP/IP 协议下建立Socket 连接也有多种方法,其中 IP 地址和网关的设置都会影响连接的建立,还需要在应用时由编程者保证代码执行后连接的建立,才能执行之后的收发双方 I/O 通道的建立及通信过程。
参考文献
[1]王常衡,任广鹏,罗钦,et al.基于TCP的Socket网络编程[J].科技经济导刊,2019,27(07):42.
[2]张雪坤.基于Socket的网络聊天程序设计与实现[J].电脑编程技巧与维护,2018(4):16-17.