概述
网络编程——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协议进行数据交互的基本应用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复