java试图通过socket发送sqlite数据库文件
我正在尝试将一个数据库文件从python服务器发送到java客户端,用于我的学校项目。 所有不同的文件都已成功传输,但问题是当我尝试发送文件时。数据库文件。 当我试着发一封信的时候。db文件一切正常,没有崩溃,但当我尝试打开该文件时,它会说:“无法打开数据库文件。原因是数据库磁盘映像格式不正确”
我正在电脑上使用python服务器 还有我手机上的安卓客户端(顺便说一句:我正在使用安卓 studio) 他们都在同一个无线网络上
Python服务器
import socket
TCP_IP = '192.168.14.87'
TCP_PORT = 9012
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP, TCP_PORT))
s.listen(5)
print ('listening')
conn, addr=s.accept()
print ("Client connected: ",addr)
filename="trempi.db"
#file=open(filename, 'rb')
#file_data=file.read()
with open(filename, "rb") as f:
bytes_read=f.read()
if not bytes_read:
break
conn.sendall(bytes_read)
conn.close()
print ("Data has been transmitted :)")
Android studio客户端(我的手机)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv=findViewById(R.id.tv1);
btn=findViewById(R.id.btn);
btn2=findViewById(R.id.btn2);
btn.setOnClickListener(this);
btn2.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v==btn2)
{
Intent go=new Intent(MainActivity.this,Data.class);
startActivity(go);
}
if (v==btn)
{
Thread myThread=new Thread(new MyServer());
myThread.start();
}
}
class MyServer implements Runnable
{
Handler handler=new Handler();
@Override
public void run() {
try {
byte[] b=new byte[20002];
Socket s=new Socket("192.168.14.87",9012);
InputStream is=s.getInputStream();
FileOutputStream fr=new FileOutputStream(getDatabasePath("trempi.db").toString());
is.read(b,0,b.length);
fr.write(b,0,b.length);
s.close();
is.close();
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
再次说明:其他文件类型已成功传输
共 (0) 个答案