【Linux Socket 编程入门】01 - socket是什

注:最近在学习linux的socket编程,目前还在比较初级的阶段,在这里把学习的一些心得做个记录,同时也分享给有需要的小伙伴。


正文:


(一)socket是什么

socket简单来说,就是利用标准的unix文件描述符来与远端(网络)的应用程序通信的一种编程技术。再简单来说,就是利用socket读写网络数据就像读写普通的文件一样。socket提供了一组完整的API来支持网络应用程序的开发。


(二)socket的分类

socket分为两种类型:Stream sockets,Datagram sockets。

  • Stream sockets:是一种可靠的,双向的传输模式。这种模式下,能够保证数据的正确性以及数据传输的顺序性。Stream sockets 使用的传输协议为TCP (The Transmission Control Protocol)协议。常见的基于TCP协议的应用有:telnet,web browsers 等等。

  • Datagram sockets:是一种不可靠的传输模式。通信的双方不需要进行连接。这种模式下,无法保证数据传输的顺序性和正确性。Datagram sockets使用的传输协议是UDP (User Datagram Protocol)协议。常见的基于UDP协议的应用有:tftp, dhcpcd 等等。

(三)TCP与UDP的比较
TCPUDP
面向连接、可靠的数据传输面向数据报、不可靠的数据传输
性能低,占用资源多性能高,占用资源少
有握手、确认、窗口、重传、拥塞控制等机制没有握手、确认、窗口、重传、拥塞控制等机制
TCP程序较为复杂UDP程序较为简单
常见应用:FTP、Telnet、SMTP、HTTP、POP3常见应用:DNS、SNMP、tftp, dhcpcd

 
 
(四)TCP与UDP编程模型

        1)TCP编程模型


        2)UDP编程模型


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值