网络服务器开发实战(3)——Socket编程基础

本文介绍了Socket编程的基础知识,包括Socket的概念,它作为Linux下的一种特殊文件类型,允许进程间网络通信。讲解了Socket通信创建流程,强调了网络字节序的重要性,特别是大端字节序在网络数据流中的应用,并提到了字节序转换函数的作用。还讨论了sockaddr结构体和IP地址转换在Socket编程中的角色。
摘要由CSDN通过智能技术生成

1.Socket概念

在Linux下,socket用整型int表示,套接字句柄和文件句柄都是int,因为socket是用于进程间网络通信的特殊文件类型,本质为内核借助缓冲区形成的伪文件,即我们可以把它当作一个文件来用

因为Linux的设计是“一切皆文件”,为了统一接口,方便编程,比如管道,进程,线程,设备驱动都定义为文件

读写套接字和读写文件一致,如调用read和write方法

区别是:文件主要用于本地持久化数据的读写;套接字用于网络进程间数据的传递

在TCP/IP协议中,IP地址+端口号来唯一标识网络通信中的一个进程,“IP地址(32位)+端口号(16位)”就对应一个socket,要建立连接,两个进程各自都会有两个socket来标识,两个socket组成的socket pair就唯一标识一个连接

在网络通信中,套接字一定是成对出现的,一端的发送缓冲区对应对端的接收缓冲区,我们使用同一个文件描述符来操作发送缓冲区和接收缓冲区

2.socket通信创建流程图

参考上篇博客的回声服务器端与客户端的实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值