当前位置: 移动技术网 > 网络运营>网络>协议 > 服务器端和客户端通过TCP协议进行数据交互的基本应用

服务器端和客户端通过TCP协议进行数据交互的基本应用

2020年07月16日  | 移动技术网网络运营  | 我要评论

网络编程——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();
		}

	}

}

本文地址:https://blog.csdn.net/yh991314/article/details/107361877

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网