Socket编程
1 :网络套接字
网络套接字(Socket)是在计算机网络中进行网络通信的一种编程接口或抽象(是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。)。它提供了一种机制,使得不同计算机之间可以通过网络进行数据传输和通信。套接字可以被看作是在网络上的两个节点之间建立的一个通信端点。它允许应用程序通过发送和接收数据来进行网络通信。套接字提供了一组API(Application Programming Interface)或函数,使得开发人员可以使用常见的网络协议(如TCP、UDP等)进行数据传输。使用套接字,应用程序可以实现以下功能:建立网络连接:套接字允许应用程序在不同计算机之间建立网络连接。通过指定目标计算机的地址和端口号,应用程序可以创建一个套接字,并与远程计算机建立连接。发送和接收数据:套接字提供了发送和接收数据的方法。应用程序可以使用套接字发送数据到远程计算机,或者从套接字接收远程计算机发送的数据。处理不同网络协议:套接字支持多种常见的网络协议,如TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)。这使得应用程序可以选择适合其需求的协议,并使用套接字进行相应的数据传输。处理网络错误和异常:套接字提供了处理网络错误和异常的机制。应用程序可以检测和处理网络连接中可能发生的错误或异常情况,以确保可靠的数据传输和通信。套接字在网络编程中被广泛使用,用于构建各种类型的网络应用程序,包括Web服务器、网络游戏、聊天应用程序等。通过套接字编程,开发人员可以控制和管理网络通信,实现数据的可靠传输和实时交互。
一个文件描述符指向一个文件套接字
在通信过程中,套接字是一定成对出现的
网络字节序
在计算机网络中,网络字节顺序(Network Byte Order)具有重要的作用,主要用于解决不同计算机体系结构和操作系统之间的数据传输问题。以下是网络字节顺序的几个关键作用: 1数据交换:计算机网络中的通信涉及多个计算机或设备之间的数据传输。不同计算机或设备可能使用不同的字节顺序来表示多字节数据,例如大端字节顺序和小端字节顺序。使用网络字节顺序,可以确保数据在不同系统之间正确地解释和传递。 2网络协议:网络协议是定义数据在网络中传输和交换的规范。许多网络协议要求数据在传输之前或之后进行字节顺序的转换,以确保数据的一致性和正确性。规定使用网络字节顺序可以简化协议的实现和跨平台的兼容性。 3网络编程:在进行网络编程时,开发人员需要处理不同系统之间的数据传输和解析。使用网络字节顺序可以确保数据在不同系统之间的正确传输和解释,避免因字节顺序不同而导致的数据错误。 4数据序列化和反序列化:在将数据从内存中序列化为字节流,或者从字节流中反序列化回内存时,需要考虑字节顺序。使用网络字节顺序可以保证数据在序列化和反序列化过程中的一致性,使得不同系统之间可以正确地进行数据交换。 总之,网络字节顺序在计算机网络中起到标准化数据表示和传输的作用,确保不同系统之间的数据交换的正确性和一致性。它是网络通信和跨平台兼容性的重要基础。
小端法(PC本地存储):高位存高位,底位存底位 例如十六进制数0x123245678 存储为12 34 56 78 (从右到左依次底位到高位)
大端法(网络存储):高位存底位,底位存高位 例如十六进制数0x123245678 存储为78 56 34 12 (从右到左依次底位到高位)
1:转字节序函数
1:htonl : 本地字节序转网络字节序 (IP)地址 • 2: htons: