socket-套接字。用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装。TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。

TCP--TCP/IP协议是传输层协议,发送数据之前需要建立三层连接。主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。TCP和UDP使用该协议从一个网络传送数据包到另一个网络。TCP面向连接,是通过将数据分散成字节码进行传输的。是可靠的传输,能确定直到另一端是否收到数据。TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达。TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流。每一条TCP连接只能是点到点的。

UDP-也是在传输层,发送数据之前不需要建立连接,就是发送的负责发送,接收的负责接收,无法确认另一端是否能收到或者是否正确收到,丢包是不可知的。UDP是面向报文的,UDP支持一对一,一对多,多对一和多对多的交互通信。

TCP: 
TCP编程的服务器端一般步骤是: 
  1、创建一个socket,用函数socket(); 
  2、设置socket属性,用函数setsockopt(); * 可选 
  3、绑定IP地址、端口等信息到socket上,用函数bind(); 
  4、开启监听,用函数listen(); 
  5、接收客户端上来的连接,用函数accept(); 
  6、收发数据,用函数send()和recv(),或者read()和write(); 
  7、关闭网络连接; 
  8、关闭监听;

TCP编程的客户端一般步骤是: 
  1、创建一个socket,用函数socket(); 
  2、设置socket属性,用函数setsockopt();* 可选 
  3、绑定IP地址、端口等信息到socket上,用函数bind();* 可选 
  4、设置要连接的对方的IP地址和端口等属性; 
  5、连接服务器,用函数connect(); 
  6、收发数据,用函数send()和recv(),或者read()和write(); 
  7、关闭网络连接;

UDP:
与之对应的UDP编程步骤: 
  UDP编程的服务器端一般步骤是: 
  1、创建一个socket,用函数socket(); 
  2、设置socket属性,用函数setsockopt();* 可选 
  3、绑定IP地址、端口等信息到socket上,用函数bind(); 
  4、循环接收数据,用函数recvfrom(); 
  5、关闭网络连接;

UDP编程的客户端一般步骤是: 
  1、创建一个socket,用函数socket(); 
  2、设置socket属性,用函数setsockopt();* 可选 
  3、绑定IP地址、端口等信息到socket上,用函数bind();* 可选 
  4、设置对方的IP地址和端口等属性; 
  5、发送数据,用函数sendto(); 
  6、关闭网络连接;

转载于:https://www.cnblogs.com/KL2016/p/11182855.html

Socket TCP UDP相关推荐

  1. 【Socket网络编程】0.socket TCP/UDP 可参考 【lx青萍之末】 的 【Linux网络编程 】系列博客

    关于socket TCP/UDP 相关知识 可参考博主[ lx青萍之末] 的 [Linux网络编程 ]系列博客 https://blog.csdn.net/daaikuaichuan/category ...

  2. 【Java 网络编程】Socket TCP UDP 联系

    文章目录 I 信息传输关注点 II Socket 与 TCP UDP 关系 III Socket 连接组成 ( IP地址 + 端口号 ) IV Socket TCP V Socket UDP VI C ...

  3. Android使用Socket(Tcp/Udp)协议进行数据传输(传输大文件)

    先揭晓一下前面天的抽奖活动中奖人员: 恭喜这位同学中奖,麻烦你在微信公众号留言你的收货地址,或者加入QQ群:417046685 来找我也行. 同时,知识星球的活动还在继续,现在加入知识星球立即赠送技术 ...

  4. 网络编程2_网络通讯协议, socket(tcp, udp)

    一. 网络通讯协议     互联网协议的功能: 定义计算机如何接入internet, 以及接入internet的计算机的通信标准     互联网协议按照功能的不同分为osi七层或tcp/ip五层    ...

  5. php udp发送和接收_php socket通信(tcp/udp)实例分析

    本文实例讲述了php socket通信(tcp/udp)方法.分享给大家供大家参考,具体如下: 注意 1.在socket_bind的时候ip地址不能真回环地址如127.0.0.1 2.server.p ...

  6. Linux Kernel TCP/IP Stack — Socket Layer — TCP/UDP Socket 网络编程

    目录 文章目录 目录 TCP/UDP Socket 逻辑架构 创建 Socket 绑定 Socket 请求建立 Socket 连接 监听 Socket 接受请求 关闭连接 数据的发送和接收 send ...

  7. [网络] SOCKET, TCP/UDP, HTTP, FTP

    (一)TCP/UDP,SOCKET,HTTP,FTP简析 TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层: 网络层:IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议 传 ...

  8. Java TCP/UDP socket 编程流程总结

    最近正好学习了一点用java socket编程的东西.感觉整体的流程虽然不是很繁琐,但是也值得好好总结一下. Socket Socket可以说是一种针对网络的抽象,应用通过它可以来针对网络读写数据.就 ...

  9. HTTP,FTP,TCP,UDP及SOCKET

    一.TCP/IP协议简析 TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层: 网络层:IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议 传输层:TCP协议与UDP协议 应 ...

最新文章

  1. group by很多字段是不是会很慢_面试官:数据量很大,分页查询很慢,有什么优化方案?...
  2. 理解Python中的类对象、实例对象、属性、方法
  3. gsm,gprs,cmwap,cmnet,3g,TD-SCDMA,CDMA2000,WCDMA
  4. spring 缓存(spring自带Cache)(入门)源码解读
  5. Android studio gradle task list 不显示问题
  6. Golang实践录:生成版本号和编译时间
  7. sql server 查询重复的数据
  8. SqlServer 更新/新增一条语句,返回其中某一列的值 inserted,@@IDENTITY()
  9. 平时使用比较多的js脚本
  10. Apache与Subversion的简单配置(Apache SVN版本控制)
  11. python qq群管理_Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码...
  12. WIFI密码破解笔记
  13. windows大文件查找清理工具wiztree
  14. 读《创业36条军规》(七)领导要有预见性
  15. 当电竞在亚运会绽放,玩家也从此有了信仰
  16. 华为云weblogic10.3.6打补丁
  17. 自己动手做Arduino玩具(三)
  18. 每个人都应该遵循的12个 SEO 最佳实践
  19. UV-LED紫外消毒灯可以有效灭杀气溶胶中附着的新冠病毒
  20. 以前写的破代码,不忍心扔

热门文章

  1. 命令行打印二维码-pyqrcode
  2. 为什么线程池里的方法会执行两次_别以为线程池很简单,来回答下这些问题!...
  3. AcWing 898. 数字三角形(线性DP)
  4. 免费的html空间,免费HTML网页空间(每月200 GB 流量托管静态网页超简单)
  5. php为什么容易解密,PHP代码的加密和解密
  6. R语言︱list用法、批量读取、写出数据时的用法
  7. C#ListT方法总结
  8. 【Leetcode】98. 验证二叉搜索树
  9. shell命令:echo命令
  10. 深入理解Java的分级引用模型