Linux内核开发五:Socket网络编程

本文详细介绍了Linux下的Socket网络编程,包括TCP和UDP的区别、TCP的三次握手和四次断开过程,以及如何进行TCP和UDP协议的Socket程序设计。此外,还讨论了主机字节序与网络字节序的转换方法,确保数据在不同主机间正确传输。
摘要由CSDN通过智能技术生成

1Linux网络编程/套接字编程

现在大多数计算机网络都是根据TCP/IP协议栈搭建起来的,为了具体实现TCP/IP协议栈,Linux操作系统就对外提供了一套可供程序员做网络开发所用的操作接口,这就是Socket编程接口,这就是用来进行Linux网络编程项目开发的一些最基本的接口函数,比如socketlistenconnectacceptsendreadwrite等等。总而言之,SocketLinux操作系统下的一套API工具,Linux网络编程就是依靠这套工具实现TCP/IP协议栈的。

2TCPUDP的区别

基本上所有的网络服务都分为两种,一种是基于面向连接的可靠通信,一种是无面向连接的不可靠通信,分别对应是TCP/IP协议栈里传输层的TCP协议和UDP协议,他们接受下层网络层IP协议的服务同时为上层应用层的各种协议提供服务,因此Linux环境下Socket网络编程的程序设计也有两种:①基于TCP服务应用,数据流套接字(SOCK_STREAM; ②基于UDP服务应用 数据报套接字(DGRAM:

1TCP是面向链接的,虽然说网络的不安全不稳定特性决定了多少次握手都不能保证连接的可靠性,但TCP的三次握手在很大程度上保证了连接的可靠性;UDP不是面向连接的,UDP传送数据前并不与对方建立连接,对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,当然也不用重发,所以说UDP是无连接的、不可靠的一种数据传输协议。

2、也正由于1所说的特点,使得UDP的开销更小数据传输速率更高,因为不必进行收发数据的确认,所以UDP的实时性更好。知道了TCPUDP的区别,就不难理解为何采用TCP传输协议的MSN比采用UDPQQ传输文件慢了,但并不能说QQ的通信是不安全的,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值