ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

TCP通信的客户端代码实现和TCP通信的服务器端代码实现

2022-07-19 09:34:29  阅读:112  来源: 互联网

标签:Socket 字节 对象 代码 通信 TCP 服务器 接字 客户端


在java中,提供了两个类用于TCP通信:

客户端:java.net.Socket类表示,创建Socket对象,向服务器发送连接请求

服务器端:Java.net.ServerSocket类表示创建ServerSocket对象,相当于开启一个服务,并等待客户端的连接

TCP通信的客户端:向服务器发送连接请求,给服务器发送数据,读取服务器回写的数据

表示客户端的类:

  java.net.Socket:此类实现客户端套接字(套接字是两台机器间通信的端点)

  套接字:包含了ip地址和端口号的网络单位
构造方法:
  Socket(String host, int port)

  创建一个流套接字并将其连接到指定主机上的指定端口
参数:
  host:服务器主机的名称/服务器的ip地址

  int port:服务器的端口号

  成员方法:(客户端与服务器进行交互使用字节流)

  getOutputStream() 返回此套接字的输出流。

  getInputStream() 返回此套接字的输入流。

  void close() 关闭此套接字。
步骤:
  1.创建一个客户端对象Socket,构造方法中绑定服务器的ip地址和端口号

  2.使用Socket对象中的方法getOutputStream();获取网络字节输出流OutputStream对象(输出写入)

  3.使用网络字节输出流OutputStream对象中的方法write,给服务器发送数据

  4.使用Socket中的方法getInputStream()获取网络字节输入流InputStream对象

  5.使用网络字节输入流InputStream对象中的方法read读取服务器回写的数据

  6.释放资源(Socket)
注意:
  1.客户端和服务器进行交互,必须使用Socket中提供的网络流,不能使用自己创建的对象

  2.当我们创建客户端对象的时候就回去请求服务器和服务器经过三次握手建立连接通路,如果这时服务器没有启动就会抛出异常如果服务器已经启动呢么就可以进行交互了

代码实现:

  

 

 

 

 

 

 

 

TCP通信的服务器端代码实现

TCP通信的服务器端:接收客户端的请求,读取客户端发送的数据,给客户端回写数据

表示服务器的类

java.net.ServerSocket:此类实现服务i的套接字

构造方法:

  构造方法摘要

  ServerSocket(int port) 创建绑定到特定端口的服务器套接字。

  服务器必须搞明白一件事情必须知道是呢个客户端请求的服务器

  所以可以使用accept方法获取到请求的客户端对象Socket

成员方法:
  Socket accept() 侦听并接受到此套接字的连接。
服务器的实现步骤:
  1.创建服务器ServerSocket对象和系统要指定的端口号

  2.使用ServerSocket对象中的方法accept获取到请求的客户端对象Socket

  3.使用Socket中的方法getInputStream()获取网络字节输入流InputStream对象

  4.使用网络字节输入流InputStream对象中的方法read读取客户端发送的数据

  5.使用Socket对象中的方法getOutputStream();获取网络字节输出流OutputStream对象

  6.使用网络字节输出流OutputStream对象中的方法write,给客户端发送数据

  7.释放资源(Socket ServeSocket)

代码实现:

 

 

 

 

搜索

 

 

复制

标签:Socket,字节,对象,代码,通信,TCP,服务器,接字,客户端
来源: https://www.cnblogs.com/12-12-12/p/16492853.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有