建立两台ubuntu虚拟机使用socket通讯的代码,客户端和服务端分开写
时间: 2023-06-24 10:07:52 浏览: 224
以下是基于Python3的代码示例,实现了两台Ubuntu虚拟机之间的socket通讯,分别为客户端和服务端。
服务端代码:
```python
import socket
# 创建socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 获取本地主机名和端口号
host = socket.gethostname()
port = 8888
# 绑定端口号
server_socket.bind((host, port))
# 设置最大连接数,超过后排队
server_socket.listen(5)
while True:
# 建立客户端连接
client_socket, addr = server_socket.accept()
print("连接地址:{}".format(str(addr)))
# 向客户端发送消息
message = "欢迎访问菜鸟教程!" + "\r\n"
client_socket.send(message.encode('utf-8'))
# 关闭连接
client_socket.close()
```
客户端代码:
```python
import socket
# 创建socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 获取本地主机名和端口号
host = socket.gethostname()
port = 8888
# 连接服务端
client_socket.connect((host, port))
# 接收消息
message = client_socket.recv(1024)
print(message.decode('utf-8'))
# 关闭连接
client_socket.close()
```
注意事项:
- 代码中的`host`应该替换为服务端虚拟机的IP地址。
- 代码中的`port`可以根据需要自行修改。
- 服务端代码中的`listen()`方法中参数5表示最大连接数,可以根据需要自行调整。
- 运行代码时需要先运行服务端代码,再运行客户端代码。
阅读全文