我是靠谱客的博主 俊逸大炮,这篇文章主要介绍服务器端和客户端通过TCP协议进行数据交互的基本应用,现在分享给大家,希望可以做个参考。

网络编程——TCP编程

举一个基本的例子来说明服务器端和客户端之间的数据交互,采用TCP协议实现。
题目:

  • 客户端能够接收用户输入的两个数并发送到服务器;
  • 服务器端能够接收到这两个数并将其相加并将结果返回给客户端;
  • 客户端接收到结果后打印出来并关闭连接。

TCP协议

TCP协议:有链接、保证可靠的无误差通讯

通信过程:
①服务器:创建一个ServerSocket,等待连接
②客户机:创建一个Socket, 连接到服务器
③服务器: ServerSocket接收到连接,创建一个Socket和客户的Socket建立专线连接,后续服务器和客户机的对话(这一对Socket)会在一个单独的线程(服务器端)上运行
④服务器的ServerSocket继续等待连接,返回①
在这里插入图片描述

实现代码

(1)服务器端:接收到客户端发出的两个数据,并将其相加的结果返回给客户端

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class SumServer { public static void main(String[] args) { try { ServerSocket server = new ServerSocket(2019); Socket socket = server.accept(); BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter pw = new PrintWriter(socket.getOutputStream()); int sum = 0; for (int i = 0; i < 2; i++) { sum += Integer.parseInt(br.readLine()); } pw.println(sum); pw.flush(); br.close(); pw.close(); socket.close(); System.out.println(sum); } catch (IOException e) { e.printStackTrace(); } } }

(2)客户端:将用户输入的两个数发送到服务器,并能够接收服务器发送的结果

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class SumClient { public static void main(String[] args) { Socket socket; try { socket = new Socket("127.0.0.1", 2019); PrintWriter pw = new PrintWriter(socket.getOutputStream()); BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); Scanner scanner = new Scanner(System.in); for (int i = 0; i < 2; i++) { System.out.printf("Please input number %d: ", i + 1); pw.println(scanner.nextInt()); } pw.flush(); String s = br.readLine(); System.out.printf("The result is : %s n", s); pw.close(); br.close(); socket.close(); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

最后

以上就是俊逸大炮最近收集整理的关于服务器端和客户端通过TCP协议进行数据交互的基本应用的全部内容,更多相关服务器端和客户端通过TCP协议进行数据交互内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(82)

评论列表共有 0 条评论

立即
投稿
返回
顶部