Socket套接字(实现TCP和UDP的通信)python
时间: 2024-09-25 10:05:48 浏览: 48
Python socket 套接字实现通信详解
Socket套接字在Python中是用于网络通信的基本模块,它支持TCP(传输控制协议,如HTTP、SMTP等)和UDP(用户数据报协议,如DNS查询)这两种常见的网络通信协议。以下是关于Socket的一些基本知识:
1. **创建套接字**:通过`socket.socket()`函数创建一个套接字对象,可以选择AF_INET(IPv4)或AF_INET6(IPv6),以及SOCK_STREAM(TCP)或SOCK_DGRAM(UDP)作为标志。
```python
import socket
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
```
2. **连接与绑定**:对于TCP,需要调用`bind()`方法绑定到一个地址上;而对于UDP,不需要这一步,因为它是非连接的。
```python
tcp_socket.bind(('localhost', 8000))
```
3. **接收和发送数据**:TCP提供`recv()`和`sendall()`方法进行全双工通信,而UDP则有`recvfrom()`和`sendto()`。
```python
data = tcp_socket.recv(1024)
tcp_socket.sendall(b"Hello, Server!")
msg, addr = udp_socket.recvfrom(1024)
udp_socket.sendto(b"Message from client", addr)
```
4. **关闭套接字**:在完成通信后,记得调用`close()`方法关闭套接字以释放系统资源。
```python
tcp_socket.close()
udp_socket.close()
```
阅读全文