编写一个服务器端网络程序,实现多线程的TCP网络程序,通过端口8081响应客户端连接,向每一个连接的客户端发送“Hello!”,并编写客户端网络程序进行测试,输出接收到的数据。
时间: 2024-03-05 19:53:03 浏览: 15
好的,我可以为您提供一个Python的示例代码。以下是服务器端的示例代码:
```python
import socket
import threading
def handle_client(client_socket):
# 向客户端发送消息
client_socket.send(b"Hello!")
# 关闭客户端连接
client_socket.close()
def run_server():
# 创建TCP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP和端口
server_socket.bind(('localhost', 8081))
# 监听端口
server_socket.listen(5)
print("[*] Listening on 0.0.0.0:8081")
while True:
# 接受客户端连接
client_socket, addr = server_socket.accept()
print("[*] Accepted connection from: %s:%d" % (addr[0], addr[1]))
# 创建新线程处理客户端连接
client_thread = threading.Thread(target=handle_client, args=(client_socket,))
client_thread.start()
if __name__ == "__main__":
run_server()
```
客户端的示例代码如下:
```python
import socket
def run_client():
# 创建TCP套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
client_socket.connect(('localhost', 8081))
# 接收服务器发送的消息
data = client_socket.recv(1024)
print("[*] Received: %s" % data.decode())
# 关闭客户端连接
client_socket.close()
if __name__ == "__main__":
run_client()
```
您可以将以上代码保存在两个不同的文件中,分别运行服务器端和客户端程序。当客户端程序运行时,它将连接到服务器端并接收服务器发送的“Hello!”消息。