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

Socket套接字概述

Socket套接字概述

1. 基本概念
  • 定义
    Socket(套接字)是网络通信的端点,提供应用程序与网络协议之间的接口,用于不同主机间的数据传输。
  • 核心作用
    实现进程间通信(Inter-Process Communication, IPC),支持跨网络的数据交换。

比喻
Socket如同电话插孔,IP地址是电话号码,端口号是分机号。插孔(Socket)将设备(应用)连接到网络(电话系统),实现通话(数据传输)。


2. Socket类型与协议
  • 流式套接字(SOCK_STREAM)

    • 基于TCP协议,提供可靠、面向连接的双向字节流通信。
    • 特点:数据无丢失、按序到达,需建立连接(三次握手)。
    • 适用场景:文件传输、网页浏览(HTTP/HTTPS)、邮件(SMTP)。
  • 数据报套接字(SOCK_DGRAM)

    • 基于UDP协议,提供无连接、不可靠的数据报传输。
    • 特点:无需连接,数据可能丢失或乱序,但传输速度快。
    • 适用场景:实时视频流、在线游戏、DNS查询。

对比总结

特性TCP SocketUDP Socket
连接方式面向连接(需握手)无连接
可靠性可靠,数据不丢失不可靠,可能丢包
传输效率较低(需确认和重传)较高
数据边界字节流(无边界)数据报(有边界)
复杂度高(需处理连接、流量控制)低(直接发送)

3. Socket通信流程
3.1 TCP Socket流程
  1. 服务端
    • 创建ServerSocket,绑定端口(如8080)。
    • 调用accept()阻塞等待客户端连接。
    • 建立连接后,通过Socket的输入输出流读写数据。
  2. 客户端
    • 创建Socket,指定服务端IP和端口。
    • 通过输入输出流与服务端通信。

代码示例

// TCP服务端
try (ServerSocket server = new ServerSocket(8080);Socket client = server.accept();BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));PrintWriter out = new PrintWriter
http://www.xdnf.cn/news/8318.html

相关文章:

  • MFC 中实现动态控件启用与命令执行
  • nRF Connect SDK开发之(1)运行一个Zephyr Project例程
  • Python Web开发基础
  • 并发编程之常用原子类
  • 免费直播预告 | 从标准解读到工具落地,《GB/T 45086与ISO11451标准解读》来了!
  • 前端学习笔记——Promis.All
  • ROS_Noetic的安装
  • 机器学习实战:犯罪率预测模型
  • 深入探讨Java循环:类型、性能与优化
  • CrackMe 002
  • VMIC PMV-5565PIORC-21000超高速光纤反射内存硬件参考
  • 08 接口自动化-用例管理框架pytest之fixtrue,conftest.py,allure报告以及logo定制
  • 选择排序 Python实现
  • 鸿蒙 Initiated Worker with invalid NODE_OPTIONS env variable
  • python 实现 web 请求与相应
  • 重拾童年,用 CodeBuddy 做自己的快乐创作者
  • AI练习:长投影
  • JWT了解
  • 谷歌 AI Ultra:开启人工智能新时代
  • 我的爬虫夜未眠:一场与IP限流的攻防战
  • [安装并使用Milvus_CLI]
  • Accelerate 2025北亚巡展正式启航!AI智御全球·引领安全新时代
  • Dynadot专业版邮箱工具指南(四):设置Catch-all邮箱/泛邮箱
  • 进阶知识:用例依赖装饰器的实现方法的 代码细节问题解析
  • HarmonyOS:帧率和丢帧分析实践
  • Linux Docker安装【再探完美版教程】
  • Pyhton | SARIMA模型预测
  • 《STL--string的使用及其底层实现》
  • html+css+js趣味小游戏~猜数字游戏(附源码)
  • Redisson读写锁和分布式锁的项目实践