Java学习-java实现客户端与服务器端的tcp通信_树盟的 ...

      最后更新:2022-01-11 13:59:31 手机定位技术交流文章

      JAVA实现客户端与服务器端的TCP通信

      (JAVA 工程训练阶段一、训练任务三基本通信能力、基本任务3.2javaTCP 通信)
      编写两个java application 应用程序,完成以下功能:
      (1)一个程序为服务端,建立TCP 服务端套接字。
      (2)另外一个程序为客户端,建立TCP 客户端套接字。
      这两个程序可以互联,完成一个基于TCP/IP 网络的文本聊天程序。
      TCP 通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket 对象,从而在通信的两端形成网络虚拟链路,一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信Java 对基于TCP 协议的的网络提供了良好的封装,使用Socket 对象来代表两端的通信端口,并通过Socket 产生IO 流来进行网络通信Java 为客户端提供了Socket 类,为服务器端提供了ServerSocket 类。
      发送数据的步骤: 创建客户端的Socket 对象(Socket)Socket(String host, int port);获取输出流,写数据OutputStream getOutputStream(); 释放资源void close()。
      接收数据的步骤:创建服务器端的Socket 对象(ServerSocket) ServerSocket(int port);监听客户端连接,返回一个Socket 对象Socket accept();获取输入流,读数据,并把数据显示在控制台InputStream getInputStream();释放资源void close()。
      TCPClient.java 功能:用户端的通信线程聊天室,客户端封装了TCP 通讯协议,使用它与远程计算机进行网络通讯实例化Socket 需要传入两个参数:服务端ip 地址、服务端端口(0-65535),通过IP 地址可以找到网络上的服务端所在的计算机,通过端口可以连接到该计算机上的服务端,应用程序实例化Socket 的过程是建立连接的过程,所以若连接服务端失败,会抛出异常。代码如下:

      TCPServer.java 程序及其功能:聊天室服务端:运行在服务端的ServerSocket 可实现申请服务端口、监听服务端口,一旦一个客户端通过该端口建立连接,则创建一个Socket 用于与该客户端通讯,存放的客户端的输出流,用于将消息广播给所有客户端,初始化ServerSocket 指定的服务端口不能与系统其它应用程序已申请的端口号重复,否则会抛出异常,服务端会监听ServerSocket 申请的服务端口,通过阻塞方法,直到一个客户端通过该端口连接才会返回一个用于与连接的客户端进行通讯的Socket,之后服务器启动一个线程与该客户端交互,将给定的消息广播给所有客户端、转发给所有客户端。Socket 可以获取一个输入流,通过该流客户读取到远端计算机发送过来的数据,通过Socket 获取输出流,用于将数据发送给客户端处理客户端断开连接以后的工作最后将该客户端的输出流从共享集合中删除。代码如下:

      启动两个windows 命令行窗口,编译TCPClient.java 与TCPServer.java,实现基于TCP/IP网络的文本交互聊天程序,运行结果如图:

      在这里插入图片描述

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/16225.html

          热门文章

          文章分类