当前位置:实例文章 » 其他实例» [文章]套接字属性

套接字属性

发布人:shili8 发布时间:2024-11-17 01:46 阅读次数:0

**套接字属性**

套接字(Socket)是计算机网络编程中一个非常重要的概念。它是一种抽象的接口,用于不同进程或程序之间的通信。在本文中,我们将讨论套接字的基本属性和特性。

###1. 套接字类型套接字可以分为两大类:TCP套接字(面向连接)和UDP套接字(无连接)。

#### TCP套接字TCP(Transmission Control Protocol)是一种面向连接的协议,它保证数据在传输过程中不丢失、不重复,并且按序到达。TCP套接字使用三次握手建立连接,四次挥手关闭连接。

import socket# 创建一个 TCP 套接字tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)


#### UDP套接字UDP(User Datagram Protocol)是一种无连接的协议,它不保证数据在传输过程中不丢失、不重复,并且按序到达。UDP套接字使用一次握手建立连接,关闭连接时不需要进行挥手。

import socket# 创建一个 UDP 套接字udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)


###2. 套接字属性套接字有以下几个重要的属性:

####1) 套接字类型(SOCK_STREAM 或 SOCK_DGRAM)

import socket# 获取套接字类型print(tcp_socket.type) # SOCK_STREAMprint(udp_socket.type) # SOCK_DGRAM


####2) 本地地址和端口号
import socket# 绑定本地地址和端口号tcp_socket.bind(('127.0.0.1',12345))
udp_socket.bind(('127.0.0.1',54321))

# 获取本地地址和端口号print(tcp_socket.getsockname()) # ('127.0.0.1',12345)
print(udp_socket.getsockname()) # ('127.0.0.1',54321)


####3) 远程地址和端口号
import socket# 连接远程地址和端口号tcp_socket.connect(('127.0.0.1',12345))
udp_socket.connect(('127.0.0.1',54321))

# 获取远程地址和端口号print(tcp_socket.getpeername()) # ('127.0.0.1',12345)
print(udp_socket.getpeername()) # ('127.0.0.1',54321)


####4) 套接字状态
import socket# 获取套接字状态print(tcp_socket.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)) #0print(udp_socket.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)) #0


###3. 套接字方法套接字有以下几个重要的方法:

####1) listen()

import socket# 监听端口号tcp_socket.listen(5)
udp_socket.listen(5)


####2) accept()

import socket# 接受连接conn, addr = tcp_socket.accept()
data, addr = udp_socket.recvfrom(1024)


####3) send() 和 recv()

import socket# 发送数据tcp_socket.send(b'Hello, world!')
udp_socket.sendto(b'Hello, world!', ('127.0.0.1',12345))

# 接收数据data = tcp_socket.recv(1024)
data, addr = udp_socket.recvfrom(1024)


####4) close()

import socket# 关闭套接字tcp_socket.close()
udp_socket.close()


### 总结在本文中,我们讨论了套接字的基本属性和特性,包括套接字类型、套接字属性、套接字方法等。通过这些知识,可以更好地理解计算机网络编程中的套接字概念,并且可以使用套接字进行通信。

相关标签:网络
其他信息

其他资源

Top