早上好,老师,我正在学习使用socket的网络编程。我已经能够将文件从我的笔记本电脑传输到我的智能手机在一些网络使用公共ip。但是,如果我试图转移到其他手机在不同的网络它不工作,手机无法连接。 这是我的服务器.py:
import sys
import socket
import os
host = ''
skServer = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
skServer.bind((host,2525))
skServer.listen(10)
print ("Server Active")
bFileFound = 0
while True:
Content,Address = skServer.accept()
print (Address, "connected")
FileName = Content.recv(8192)
sFileName = FileName.decode('utf-8')
for file in os.listdir("files/"):
if file == sFileName:
bFileFound = 1
break
if bFileFound == 0:
print (sFileName+" Not Found On Server")
else:
print (sFileName," File Found")
fUploadFile = open("files/"+sFileName,"rb+")
sRead = fUploadFile.read(8192)
while sRead:
Content.sendall(sRead)
sRead = fUploadFile.read(8192)
print ("Sending Completed")
Content.close()
skServer.close()
这是我的客户.py:
import sys
import socket
skClient = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
skClient.connect(("<ip public>",2525))
sFileName = input("Enter Filename to download from server : ")
sData = "Temp"
while True:
skClient.sendall(sFileName.encode('utf-8'))
sData = skClient.recv(8192)
fDownloadFile = open("storage/emulated/0/qpython"+sFileName,"wb+")
while sData:
fDownloadFile.write(sData)
sData = skClient.recv(8192)
print ("Download Completed")
skClient.close()
有没有什么方法可以全局使用我的脚本,以便任何网络都可以访问它
可能吧。一些提供商限制某些类型的网络流量
您有几种选择,其中之一是两个设备都有一个公共VPN连接。这项技术将封装程序的通信量,因此程序应该按照您希望的方式工作
相关问题 更多 >
编程相关推荐