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

概述

网络编程——TCP编程

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

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

TCP协议

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

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

实现代码

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

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)客户端:将用户输入的两个数发送到服务器,并能够接收服务器发送的结果

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协议进行数据交互的基本应用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部