import
android.support.v7.app.AppCompatActivity;
import
android.os.Bundle;
import
android.util.Log;
import
java.io.IOException;
import
java.net.Socket;
public
class
MainActivity
extends
AppCompatActivity {
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final
String testDir = getApplicationContext().getCacheDir().toString();
new
Thread()
{
public
void
run()
{
String ServerIP =
"192.168.0.10"
;
int
port =
5000
;
SocketConnect(ServerIP,port);
}
}.start();
}
public
void
SocketConnect(String ServerIP,
int
port)
{
try
{
Socket connection =
new
Socket(ServerIP, port);
MultiFileTransferClient.Client(connection);
}
catch
(IOException e)
{
e.printStackTrace();
}
}
}
import
android.os.Environment;
import
android.util.Log;
import
java.io.BufferedInputStream;
import
java.io.BufferedOutputStream;
import
java.io.BufferedWriter;
import
java.io.DataInputStream;
import
java.io.DataOutputStream;
import
java.io.File;
import
java.io.FileOutputStream;
import
java.io.FileWriter;
import
java.io.IOException;
import
java.io.ObjectOutputStream;
import
java.io.Writer;
import
java.net.Socket;
public
class
MultiFileTransferClient {
public
static
void
Client(Socket sock)
{
BufferedOutputStream bos =
null
;
ObjectOutputStream oos =
null
;
DataInputStream dis =
null
;
DataOutputStream dos =
null
;
int
fileTransferCount =
0
;
long
fileTransferSize =
0
;
int
readBufLength =
0
;
File copyFile =
null
;
String[] TestFileName =
new
String[
2
];
TestFileName[
0
] =
"sample1.txt"
;
TestFileName[
1
] =
"sample2.txt"
;
try
{
dis =
new
DataInputStream(
new
BufferedInputStream(sock.getInputStream()));
dos =
new
DataOutputStream(
new
BufferedOutputStream(sock.getOutputStream()));
String sdcard = Environment.getExternalStorageDirectory().getAbsolutePath();
try
{
fileTransferCount = dis.readInt();
int
n =
0
;
byte
[]buf =
new
byte
[
4092
];
for
(
int
i=
0
; i< fileTransferCount ;i++)
{
Log.d(
"Test"
,
"Receiveing file : "
+ TestFileName[i]);
copyFile =
new
File(TestFileName[i]);
FileOutputStream fos =
new
FileOutputStream(sdcard+
"/"
+copyFile,
false
);
while
((n = dis.read(buf)) != -
1
&& n!=
3
){
fos.write(buf,
0
,n);
fos.flush();
}
fos.close();
}
}
catch
(Exception e)
{
e.printStackTrace();
}
}
catch
(IOException e) {
e.printStackTrace();
}
finally
{
try
{
if
(dis !=
null
) dis.close();
if
(dos !=
null
) dos.close();
if
(sock !=
null
) sock.close();
}
catch
(Exception e)
{
e.printStackTrace();
}
}
}
}