怎么用python的socket实现两个程序相互通信?IP和端口怎么弄
时间: 2024-03-06 16:51:03 浏览: 14
使用Python的socket库可以实现两个程序之间的通信。其中,IP地址和端口号是必要的参数。
在服务器端,可以通过以下代码创建一个socket对象并绑定IP地址和端口号:
```python
import socket
# 创建一个socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP地址和端口号
s.bind(('localhost', 8888))
# 监听端口,等待客户端连接
s.listen(5)
# 循环等待客户端连接
while True:
# 接收客户端连接
client_socket, addr = s.accept()
print('Connected by', addr)
# 接收客户端消息
data = client_socket.recv(1024).decode('utf-8')
print('Received from client:', data)
# 发送回复消息
reply = 'Hello, I am server!'
client_socket.send(reply.encode('utf-8'))
# 关闭连接
client_socket.close()
```
在客户端,可以通过以下代码创建一个socket对象并连接服务器的IP地址和端口号:
```python
import socket
# 创建一个socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器IP地址和端口号
s.connect(('localhost', 8888))
# 发送消息给服务器
message = 'Hello, I am client!'
s.send(message.encode('utf-8'))
# 接收服务器回复消息
data = s.recv(1024).decode('utf-8')
print('Received from server:', data)
# 关闭连接
s.close()
```
在上述代码中,服务器IP地址为'localhost',端口号为8888。客户端通过connect()方法连接服务器。在服务器端,通过bind()方法绑定IP地址和端口号,并通过listen()方法监听端口,等待客户端连接。在接收到客户端连接后,通过accept()方法接收客户端连接请求,并通过recv()方法接收客户端发送的消息,然后通过send()方法发送回复消息。最后,通过close()方法关闭连接。