最近工作上接触了python socket,记录一下以备忘记
地址族
socket地址族主要有3类
socket.AF_UNIX
socket.AF_INET
socket.AF_INET6
AF_UNIX
A single string is used for the AF_UNIX address family.用于同一台机器上的进程间通信,一般绑定的是一个路径(这个地址族在代码中python socket中没有发现,不知道为什么)
AF_INET
A pair (host, port) is used for the AF_INET address family, where host is a string representing either a hostname in Internet domain notation like 'daring.cwi.nl' or an IPv4 address like '100.50.200.5', and port is an integer.
AF_INET6
For AF_INET6 address family, a four-tuple (host, port, flowinfo, scopeid) is used, where flowinfo and scopeid represents sin6_flowinfo and sin6_scope_id member in struct sockaddr_in6 in C.
套接字
套接字类型:
socket.SOCK_STREAM
socket.SOCK_DGRAM
socket.SOCK_RAW
socket.SOCK_RDM
socket.SOCK_SEQPACKET
SOCK_STREAM是有保障的(即能保证数据正确传送到对方)面向连接的SOCKET,用于TCP通信;可以同时有多个数据流。可以想象成一个数据互不干扰的管道。另外一个重要的一点是:数据包的发送和接收是有顺序的。其他一些 Socket 如 UDP、ICMP 和 ARP 没有“连接”的概念,它们是无连接通讯,意味着你可从任何人或者给任何人发送和接收数据包。
比较常用与 SOCK_STREAM 相对的一个类型是 SOCK_DGRAM,它 用于 UDP 通讯协议,UDP 通讯是非连接 Socket,不保证数据的完整性、可靠性,网络环境比较差的情况下,会出现丢包的可能
相关推荐
Python中的socket模块源于C语言的socket接口,它提供了TCP/IP协议族的网络通信功能。在Python中,创建一个socket对象是网络编程的第一步,通常使用`socket.socket()`函数来完成。你可以指定socket的类型,如SOCK_...
这里的`AF_INET`代表地址族,即IPv4,`SOCK_STREAM`则表示使用TCP协议(面向连接的、可靠的)。对于UDP通信,可以使用`SOCK_DGRAM`。 接下来,我们讲解如何构建一个简单的TCP服务器。服务器需要监听特定的IP地址和...
- Socket是应用层与TCP/IP协议族之间的一个接口,用于在网络中传输数据。 - 在本项目中,使用C语言的socket API创建服务器(SlideWindowReceiver.c)和客户端(SlideWindowSender.c),分别模拟接收方和发送方。 ...
- **TCP/IP**:Socket通常基于TCP/IP协议族,这是一种可靠的、面向连接的传输协议。 - **服务器端与客户端**:在Socket通信中,通常有一个服务器端(Server)和一个或多个客户端(Client)。服务器端监听特定的端口...
- 创建套接字时,需要指定协议族(如`AF_INET`表示IPv4)和套接字类型(如`SOCK_STREAM`)。 2. **服务端(server.py)实现**: - 首先,导入`socket`库并创建一个socket对象,通常用`socket.socket()`方法。 - ...
Python的socket模块提供了低级别的、原始的套接字接口,它是TCP/IP协议族的基础。在Python中,我们可以通过导入socket模块创建服务器和客户端,实现数据的双向传输。 在构建聊天室的过程中,我们需要创建两个主要的...
- **Internet协议**:主要指的是TCP/IP协议族,包括IP协议(互联网协议)、TCP协议(传输控制协议)等,用于在网络中进行数据包的传输。 - **HTTP协议**:即超文本传输协议,是基于TCP/IP的应用层协议之一,用于从...
Python的socket库提供了一种标准的方式来创建套接字(socket),这是TCP/IP协议族的基本通信单元。套接字允许程序作为客户端(client)或服务器端(server)与其他运行在网络上的程序进行交互。基本的Socket操作包括...
根据提供的文件信息,我们可以推断出本教程系列主要讲解如何使用Python中的Socket编程结合多线程技术来开发一个FTP(文件传输协议)软件。接下来,我们将深入探讨这一主题中的几个关键知识点。 ### 一、Python ...
在Python中,创建Socket对象使用`socket.socket()`函数,指定协议族(AF_INET代表IPv4)和套接字类型(SOCK_STREAM代表TCP,SOCK_DGRAM代表UDP)。例如: ```python s = socket.socket(socket.AF_INET, socket.SOCK...
Python的socket编程实例为开发者提供了一个直观的学习窗口,通过这些实例,开发者可以加深对网络通信和网络协议的理解。掌握socket编程对于那些希望深入学习网络编程的Python爱好者来说,是一个重要的里程碑。
简介 Python 中的 Socket 编程 ...socket 地址族 使用主机名 阻塞调用 关闭连接 字节序 结语 回调模型(selectors模块) 1. 前言 2. 核心类 3. SelectSelector 核心函数代码分析 4. 别名 5. 总结 6. 代码报错问题
创建一个Socket对象可以通过`socket.socket()`函数完成,指定传输层协议(TCP或UDP)和地址族(通常为AF_INET,表示IPv4): ```python import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ```...
- `socket.socket()`函数用于创建一个socket对象,需要指定传输协议类型(如TCP/IP的socket.SOCK_STREAM)和地址族(如IPv4的AF_INET)。 3. **服务器端编程**: - **绑定(Binding)**:使用`bind()`方法将...
`import socket`导入模块后,可以使用`socket.socket()`来创建一个socket对象,通常需要指定地址族(如AF_INET对应IPv4)和套接字类型(如SOCK_STREAM对应TCP,SOCK_DGRAM对应UDP)。 TCP(传输控制协议)是一种...
创建一个Socket实例时,我们需要指定协议类型(如TCP或UDP)以及地址族(如InterNetwork表示IPv4)。例如: ```csharp Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ...
本篇将深入探讨如何使用Python实现TCP协议互联,特别关注socket编程。 首先,TCP是一种面向连接的、可靠的传输层协议,它保证了数据的顺序传输和无损传输。在Python中,我们可以使用内置的`socket`模块来创建和操作...
创建套接字(socket):使用socket库的socket()函数创建一个套接字对象,并指定使用的协议(如TCP或UDP)和地址族(如IPv4或IPv6)。 绑定地址和端口:对于服务器端,使用bind()函数将套接字绑定到特定的IP地址和...
使用 socket.socket() 创建一个新的socket对象 server_socket,参数 socket.AF_INET 表示使用IPv4地址族,socket.SOCK_STREAM 表示使用TCP协议。 使用 server_socket.bind() 绑定主机和端口号。 使用 server_socket....
在网络环境中,TCP/IP协议族为我们解决了这个问题。网络层的IP地址用于唯一标识网络上的主机,而在传输层,协议(如TCP或UDP)加上端口号可以唯一标识主机中的特定进程。因此,通过IP地址、协议和端口的组合,我们...