【发布时间】:2017-06-03 09:12:20
【问题描述】:
我创建了一个相当简单的服务器,目的是发送一个简单的 .txt 文件,但由于某种原因它不会发送。
服务器代码:
import socket
port = 8081
host = "192.168.0.20"
s = socket.socket()
s.bind((host, port))
s.listen(5)
print("Server Listening.....")
while True:
conn, addr = s.accept()
print("Got connection from", addr)
data = conn.recv(1024)
print("Data recieved", repr(data))
filename = "/Users/dylanrichards/Desktop/keysyms.txt"
f = open(filename, 'rb')
l = f.read(1024)
while (l):
conn.send(l)
print("Sent", repr(l))
l = f.read(1024)
f.close()
print("Done sending")
conn.send("Thank you for connecting")
conn.close()
这是客户端的代码:
import socket
port = 8081
host = "192.168.0.20"
s = socket.socket()
s.connect((host, port))
with open("Recieved_File", 'wb') as f:
print("File opened")
while True:
print("Receiving data...")
data = s.recv(1024)
print("Data=%s", (data))
if not data:
break
f = open("/Users/dylanrichards/Desktop/test12.txt")
f.write(data)
f.close()
print("Successfully got file")
print("Connection closed")
s.close()
如果有帮助的话,我会在 Macbook Air 上通过我的本地网络进行测试。在此先感谢...
【问题讨论】:
-
我会尝试更改端口号。如果它有效,那是因为之前的端口已经分配了。
-
@Jean-FrançoisFabre,那是我认为可能的解决方案,但我已经尝试了很多次都无济于事
-
好的,让网络专家来解答。我没有资格:) 你能更具体一点:是客户端没有发送,还是服务器没有接收?
-
顺便说一句,您的接收有问题:您正在以
read模式打开test12.txt(从Received_File覆盖您的f)并写信给它。那是假的。 -
好的,所以我刚刚注意到它不是网络。在我的桌面上创建了一个文件,但没有任何数据。
标签: python networking server