我正在创建一个原始套接字服务器来教自己更多关于网络的知识。在我尝试创建它时,我决定尝试创建一个“聊天记录”。我的计划是让服务器后端脚本(支持 Tkinter GUI 的脚本)将所有发送的消息附加到一个名为old_msg.txt
.
为此,我创建了一个名为old_msg
. 它在这里定义。
def old_msg(data):
while True:
oldmsg = open("old_msg.txt", "a+")
try:
oldmsg.write("%s \n" % (data))
except TypeError:
print "SERVER MSG >>> NO MESSAGE SENT"
oldmsg.close()
我在另一个函数中调用它,clientthread
如果数据不为空,它会附加数据。
while True:
#Receiving from client
data = connection.recv(1024)
if not data:
break
if data:
connection.sendall(data)
old_msg(data)
print data
connection.close()
不同寻常的是,这段代码创建了一个UNIX_EXECUTABLE.
It is called old_msg
,下面是 shell 中显示的一些文本。这重复了数千次。
/Volumes/***'s USB/Python Programs/Sockets/IM Project/Server/Different Idea/old_msg: line 43159: hello: command not found
/Volumes/***'S USB/Python Programs/Sockets/IM Project/Server/Different Idea/old_msg: line 43160: hello: command not found
logout
为什么这段代码会创建一个 unix 可执行文件?
编辑
我向服务器发送了消息“Hello World”。你可以在这里找到 pastebin