49 lines
1.4 KiB
Python
49 lines
1.4 KiB
Python
"""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()
|