编程:Ubuntu设计一个聊天软件,能在局域网内进行交互式聊天
时间: 2023-09-12 20:10:46 浏览: 100
基于局域网的聊天程序设计
4星 · 用户满意度95%
以下是一个简单的Ubuntu聊天软件的示例代码:
1. 服务器端
```python
import socket
# 创建socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 获取本地主机名
host = socket.gethostname()
# 设置端口号
port = 9999
# 绑定端口号
server_socket.bind((host, port))
# 等待客户端连接
server_socket.listen(5)
while True:
# 建立客户端连接
client_socket, addr = server_socket.accept()
print("连接地址: %s" % str(addr))
message = '欢迎使用聊天室'
client_socket.send(message.encode('utf-8'))
while True:
# 接收客户端消息
data = client_socket.recv(1024).decode('utf-8')
if not data:
break
print("客户端消息: %s" % data)
# 发送消息给客户端
message = "收到你的消息: " + data
client_socket.send(message.encode('utf-8'))
# 关闭连接
client_socket.close()
```
2. 客户端
```python
import socket
# 创建socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 获取本地主机名
host = socket.gethostname()
# 设置端口号
port = 9999
# 连接服务,指定主机和端口
client_socket.connect((host, port))
# 接收欢迎消息
message = client_socket.recv(1024).decode('utf-8')
print(message)
while True:
# 发送消息给服务器
message = input("请输入你的消息: ")
client_socket.send(message.encode('utf-8'))
# 接收服务器消息
data = client_socket.recv(1024).decode('utf-8')
print("服务器消息: %s" % data)
# 关闭连接
client_socket.close()
```
在以上代码中,服务器端通过socket模块创建一个TCP/IP的socket,然后绑定到指定的主机和端口。服务器端使用accept()方法等待客户端连接请求,并且使用recv()方法接收客户端发送的消息,并且使用send()方法发送消息给客户端。客户端通过socket模块创建一个TCP/IP的socket,然后连接到指定的服务器端。客户端使用recv()方法接收服务器端发送的消息,并且使用send()方法发送消息给服务器端。以上代码只是一个简单的示例,可以根据需求进行修改和扩展。
阅读全文