当前位置: 首页 > news >正文

TCP协议简单总结

TCP:传输控制协议

  • 特点:面向连接、可靠通信

  • TCP的最终目的:要保证在不可靠的信道上实现可靠的传输

  • TCP主要有三个步骤实现可靠传输:三次握手建立连接,传输数据进行确认,四次挥手断开连接

    • 三次握手建立可靠连接。

    • 建立连接后会建立可靠的通信管道

    • 四次握手断开连接

TCP通信之客户端开发

客户端发送信息:

import java.io.*;
import java.net.*;public class TCPClient {public static void main(String[] args) {final String serverAddress = "127.0.0.1"; // 服务器地址final int serverPort = 8080; // 服务器端口try {// 连接到服务器Socket socket = new Socket(serverAddress, serverPort);System.out.println("Connected to server.");// 发送消息到服务器sendMessage(socket, "Hello, Server!");// 接收服务器的响应String response = receiveMessage(socket);System.out.println("Response from server: " + response);// 关闭连接socket.close();} catch (IOException e) {e.printStackTrace();}}private static void sendMessage(Socket socket, String message) throws IOException {PrintWriter out = new PrintWriter(socket.getOutputStream(), true);out.println(message);}private static String receiveMessage(Socket socket) throws IOException {BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));return in.readLine();}
}

TCP通信之服务端开发

 

 服务端接收信息

import java.io.*;
import java.net.*;public class TCPExample {public static void main(String[] args) {final int PORT = 8080;try {// 启动服务器ServerSocket serverSocket = new ServerSocket(PORT);System.out.println("Server started. Waiting for connections...");// 等待客户端连接Socket clientSocket = serverSocket.accept();System.out.println("Client connected: " + clientSocket);// 处理客户端请求handleClient(clientSocket);// 关闭服务器serverSocket.close();} catch (IOException e) {e.printStackTrace();}}public static void handleClient(Socket clientSocket) {try {// 接收客户端消息BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));String message = in.readLine();System.out.println("Received message from client: " + message);// 向客户端发送响应PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);out.println("Hello, Client!");// 关闭连接clientSocket.close();} catch (IOException e) {e.printStackTrace();}}
}

http://www.lryc.cn/news/338133.html

相关文章:

  • 【Qt 实现录音】
  • python:算法竞赛入门之一
  • 【大数据与云计算】虚拟机安装Linux
  • 从零开始编写一个cmake构建脚本
  • pringboot2集成swagger2出现guava的FluentIterable方法不存在
  • 进程线程的关系
  • 一些 VLP 下游任务的相关探索
  • 【opencv】示例-pca.cpp PCA图像重建演示
  • C语言中的编译和链接
  • 如何将三方库集成到hap包中——通过IDE集成cmak构建方式的C/C++三方库
  • Towards Street-Level Client-Independent IP Geolocation(2011年)(第二部分)
  • 软件测试过程和测试生命周期
  • python-study-day1
  • 【Apache2】彻底删除 Apache2 服务器
  • C#:成绩等级转换
  • 每日OJ题_01背包③_力扣494. 目标和(dp+滚动数组优化)
  • vue3+element plus图片预览点击按钮直接显示图片的预览形式
  • GAMS104 现代游戏引擎 2
  • spring boot学习第十七篇:OAuth2概述及使用GitHub登录第三方网站
  • 基于springboot的电影评论网站系统源码数据库
  • javaScript手写专题——实现instanceof/call/apply/bind/new的过程/继承方式
  • C++11 新特性:tuple 元组
  • 最齐全,最简单的免费SSL证书获取方法——实现HTTPS访问
  • c语言->贪吃蛇实战技巧结合EasyX简单实现页面管理(简单实现)
  • C语言-详解内存函数
  • 【核心完整复现】基于目标级联法的微网群多主体分布式优化调度
  • Mac下安装NVM,NVM安装Node(附带NPM)
  • java之变量的作用域
  • CentOS 7软件安装全攻略:YUM命令详解与实战
  • 达梦关键字(如:XML,EXCHANGE,DOMAIN,link等)配置忽略