标题 | 基于Java的套接字编程 |
范文 | 颜慧 摘要:该文介绍了网络编程中端口和套接字等相关的概念,并探讨了网络主机通过TCP套接字和UDP套接字进行通信的基本流程、适用场合,以及Java实现套接字编程相关的类和实现方法。 关键词:Java;网络编程;端口;TCP套接字;UDP 套接字 中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)20-0104-02 Abstract: This paper introduces ports and sockets and other related concepts in the network programming, and introduces the network hosts how to communication to each other through the TCP socket and UDP socket, and how to programming to realize TCP Socket and UDP Socket. Key words: Java; network programming; port; TCP Socket; UDP Socket 在网络编程中,经常需要在两台计算机之间进行通信,这就涉及怎么定位网络中的计算机和唯一地标识计算机上的进程。在Internet中使用的网络通信协议是TCP/IP协议,它是一种四层的体系结构,分为应用层、传输层、网际层和网络接口层。在Internet中用IP地址来唯一地标识一台网络中的计算机,那么怎么唯一地标识计算机中的进程呢? 端口是应用层和传输层之间的通信协议接口,端口可用来唯一地标识计算机上的进程。由于传输层有TCP和UDP两个协议,因此端口又可分为TCP端口和UDP端口,每台主机上最多可有65536个TCP端口和65536个UDP端口,也就是说在每台计算机最多可以区分65536个TCP进程和65536个UDP进程。 套接字Socket是网络主机的两个进程进行通信连接的端点,可以在指定计算机的某个空闲端口上创建套接字,那么网络主机可以通过套接字在网络中定位计算机及端口,并且进行数据的发送和接收。根据使用的传输协议,套接字又可以分为TCP套接字和UDP套接字。在网络编程中,套接字编程是比较常用的。本文介绍了网络主机利用TCP套接字和UDP套接字进行通信的流程,并介绍了在Java中是如何实现TCP套接字和UDP套接字编程的。 1 TCP Socket TCP Socket 是基于TCP协议(传输控制协议)的套接字。TCP协议是面向连接的传输协议,在进行通信前必须先建立通信连接,它是一种可靠的传输协议,传输数据的质量比较高,适用于传输大量数据的场合,但是它的传输速率比较慢。在Java中,提供了java.net.ServerSocket和java.net.Socket等类来实现TCP套接字。 ServerSocket类用于服务器端代码中,它的作用是启动服务器端的TCP端口,并且监听该端口是否有连接请求,如果有连接请求,则接受连接请求,并且返回一个本地Socket对象用来与对方进行通信。 Socket类用于两台网络主机之间进行通信,在客户端代码和服务端代码中都需要Socket类的对象。在客户端代码中的Socket还负责向指定的服务器上的TCP端口发出连接请求,如果服务器接受了连接请求,则可使用Socket与对方进行通信。 网络主机使用TCP套接字的通信流程如图1所示: 服务端和客户端都可以向对方发送数据或者接收数据,发送数据和接收数据的过程可以是一个持续的过程,使用循环就可以实现这个持续的过程。当服务端需要处理多个客户的连接请求的时候,就需要用到多线程了,为每个客户单独创建一个套接字来处理客户的连接请求,并且进行数据的发送和接收。在javax.net包中还提供了增强版的SSLServerSocket和SSLSocket,用来构造安全的套接字对象。 2 UDP Socket UDP Socket是使用UDP协议(用户数据报协议)的套接字。UDP协议是无连接的传输协议,在双方进行通信之前不需要事先建立连接,它提供的传输服务是简单的、不太可靠的,但是传输数据的速度比较快,适用于数据量比较少、对数据的实时性要求比较高的场合。 在Java中提供了java.net.DatagramSocket和java.net.DatagramPacket等类来实现UDP套接字。DatagramSocket类用来启动UDP端口,通过该端口进行数据的发送和接收;DatagramPacket用来创建通信时所发送和接收的数据报对象。 网络主机使用UDP套接字进行通信的流程如图2所示,每台网络主机均可进行数据报的发送和接收,可以使用多线程来实现数据报的同时收发,也可以用循环来实现持续地发送和接收数据报的过程。 3 结束语 文中探讨了Java中的套接字编程,阐述了TCP套接字和UDP套接字的基本工作流程、适用场合以及编程的基本步骤。在实际的应用中,应根据问题的数据量大小、对数据质量的要求、传输速率的要求等来考虑使用TCP套接字还是UDP套接字来进行主机的通信。 参考文献: [1] 朱辉. Java网络程序设计[M]. 西安: 西安电子科技大学出版社, 2015. [2] 戴歆. JAVA TCP/IP Socket 网络通信编程研究[J]. 电脑知识与技术, 2013(9). [3] 陈浩, 张伟. 基于javasocket 的TCP/IP网络编程[J]. 计算机光盘软件与应用, 2013(2). |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。