前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TCP&&UDP套接字编程

TCP&&UDP套接字编程

作者头像
用户11097514
发布2024-05-31 12:29:40
1060
发布2024-05-31 12:29:40
举报
文章被收录于专栏:技术分享

Socket编程

应用的实现

应用是如何实现的 ?

答: 应用进程使用传输层提供的服务才能够交换报文,实现应用协议,实现应用

报文的传输是通过下层的通信及其下层的服务来完成 ** TCP/IP:应用进程使用 Socket API 访问传输服务 ** 在什么地方将报文传输下去? 什么形式 ? 地点:界面上的SAP(Socket)** 方式:**Socket API

  • 目标: 学习如何构建能借助sockets进行通信的C/S应用程序
  • **socket: 分布式应用进程之间的门,传输层协议提供的端到端 服务接口 **
image.png
image.png

具体的socket在下层收到之后如何来做, 是由后面的内容讲的 本章主要学习的是 : 应用如何使用层间接口Socket上的SocketAPI来创建Socket 、使用Socket、操作Socket等等, 从而让两个应用进程之间可以逻辑的交换应用报文,实现应用协议, 实现各种的网络应用。

我们都知道本层协议的实现是为了更好的向上层提供服务。而应用层是Top层,但是应用层也可以有上层 ,就比如是用户、其他应用等等。

Socket的两种传输层类型

  • **TCP: 可靠的、字节流的服务 **
  • **UDP: 不可靠(数据UDP数据报)服务 **

TCP套接字编程

**套接字:应用进程与端到端传输协议(TCP或UDP)之间 的门户 ** **TCP服务:从一个进程向另一个进程可靠地传输字节流 **

image.png
image.png

过程

服务器首先运行,等待连接建立

  1. ** 服务器进程必须先处于运行状态 **

创建欢迎socket 和本 地端口捆绑 在欢迎socket上阻塞式等待接收 用户的连接

** 客户端主动和服务器建立连接:(Accept接收其他人与他建立的连接)** 如果没有那就会阻塞

  1. ** 创建客户端本地套接字(隐式捆 绑到本地port) **

** 指定服务器进程的IP地址和端口 号,与服务器进程连接 **

  1. ** 当与客户端连接请求到来时 **

** 服务器接受来自用户端的请求 ,解除阻塞式等待,返回一个 新的socket(与欢迎socket不 一样),与客户端通信 **

  • 允许服务器与多个客户端 通信
  • 使用源IP和源端口来区分 不同的客户端
  1. ** 连接API调用有效时,客户端P与 服务器建立了TCP连接 **

**注意: **

本地的welcome Socket代表的是本地的80号端口和其他的几个值 ,通过这个端口来建立与其他client的连接 80端口可以被不同的线程共享,有socket值来区分不同的线程

TCP Socket编程(C/S模式交互样例)

  1. 客户端从标准输入装置读 取一行字符,发送给服务 器
  2. 服务器从socket读取字符
  3. 服务器将字符转换成大写 ,然后返回给客户端
  4. 客户端从socket中读取一 行字符,然后打印出来
image.png
image.png

** **实际上,这里描述了C-S之间交互的动作次序 140

这里需要重新回顾

UDP套接字编程

从进程的角度看u的udp编程:

UDP 为客户端和服务器提供 不可靠的字节组的传送服务

**UDP: 传送的数据可能乱序, 也可能丢失( 不可靠、无连接的 ) **

** UDP: 在客户端和服务器之间 没有连接 ** • 没有握手 • 发送端在每一个报文中明确 地指定目标的IP地址和端口 号 • 服务器必须从收到的分组中 提取出发送端的IP地址和端 口号

Client/server socket 交互: UDP (过程图)

image.png
image.png
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-07-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Socket编程
    • 应用的实现
      • Socket的两种传输层类型
        • TCP套接字编程
          • 过程
          • TCP Socket编程(C/S模式交互样例)
        • UDP套接字编程
          • Client/server socket 交互: UDP (过程图)
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档