Files
syscall_monitor/demo/server.py

49 lines
1.4 KiB
Python
Raw Normal View History

"""TCP 文本写入服务端(实验大纲示例应用)"""
import os
import socket
HOST = "0.0.0.0"
PORT = 8888
SAVE_PATH = "./data.txt"
if not os.path.exists(os.path.dirname(SAVE_PATH)) and os.path.dirname(SAVE_PATH):
os.makedirs(os.path.dirname(SAVE_PATH))
def save_to_file(content):
"""文本追加写入本地磁盘"""
with open(SAVE_PATH, "a", encoding="utf-8") as f:
f.write(content + "\n")
def main():
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_socket.bind((HOST, PORT))
server_socket.listen(5)
print(f"TCP 写入服务已启动,监听端口:{PORT}")
print(f"数据保存路径:{os.path.abspath(SAVE_PATH)}")
while True:
conn, addr = server_socket.accept()
print(f"\n客户端已连接:{addr}")
try:
while True:
data = conn.recv(1024)
if not data:
break
text = data.decode("utf-8").strip()
print(f"收到数据:{text}")
save_to_file(text)
conn.send("写入成功,数据已保存到磁盘".encode("utf-8"))
except Exception as e:
print(f"连接异常:{e}")
finally:
conn.close()
print("客户端连接断开")
if __name__ == "__main__":
main()