How to transfer a pic correctly using socket
I've been tried and tried to send the pictures between two android
devices, but there is a transmission problem I can't figure out. ‚hrevised
the wile loop or even eliminated the loop, but it still do not work. When
I tested my project on the device, there wasn't problem with the
connection. But, as the transmission task started, the sending client was
stopped and "transfer error" msg showed up on the receiver. Is there
anyone knows what can I do to my program? Here are my two mainly parts of
sending and receiving.
I'll be very appreciative of any help. Thank you.
sending part:
new Thread() {
public void run() {
try {
File file = new File("/storage/emulated/0/Pic/img3.jpg");
s = new Socket("192.168.1.106", 1234);
FileInputStream fis = new FileInputStream(file);
din = new DataInputStream(new BufferedInputStream(fis));
dout = new DataOutputStream(s.getOutputStream());
dout.writeUTF(String.valueOf(file.length()));
byte[] buffer = new byte[1024];
int len = 0;
/*while ((len = din.read(buffer)) != -1) {
dout.write(buffer, 0, len);
} */
dout.write(din.read());
dout.flush();
} catch (IOException e) {
System.out.println(e.toString());
}
receiving part:
try {
File file = new File("/storage/emulated/0/DCIM/t.jpg");
Log.d("tag===========", "transfer file:"+file);
BufferedInputStream bis = new BufferedInputStream(client.getInputStream());
din = new DataInputStream(bis);
FileOutputStream fos = new FileOutputStream(file);
dout = new DataOutputStream(new BufferedOutputStream(fos));
byte[] buffer = new byte[1024];
int len = 0;
/*while ((len = din.read(buffer)) != -1) {
dout.write(buffer, 0, len);
} */
dout.write(din.read());
dout.flush();
dout.close();
Here are the catlog
08-28 00:08:35.118: I/PowerManagerService(480): Waking up from sleep...
08-28 00:08:35.329: I/WindowManager(480): Lock screen displayed!
08-28 00:08:35.489: D/PowerManagerService-JNI(480): Excessive delay in
autosuspend_disable() while turning screen on: 328ms
08-28 00:08:35.489: D/SurfaceFlinger(125): Screen acquired, type=0
flinger=0x40dec318
08-28 00:08:35.539: D/dalvikvm(576): GC_CONCURRENT freed 1613K, 44% free
10558K/18832K, paused 7ms+4ms, total 74ms
08-28 00:08:36.769: D/PhoneStatusBar(576): disable: < expand icons alerts
ticker system_info BACK HOME recent* clock search >
08-28 00:08:36.799: D/PhoneStatusBar(576): disable: < expand icons alerts
ticker system_info back* home* recent clock search >
08-28 00:08:36.799: W/InputMethodManagerService(480): Window already
focused, ignoring focus gain of:
com.android.internal.view.IInputMethodClient$Stub$Proxy@426bbc20
attribute=android.view.inputmethod.EditorInfo@426bbc30, token =
android.os.BinderProxy@4223c5b0
08-28 00:08:37.279: V/TAG(480): bug 7643792: fitSystemWindows([0,33][0,0])
08-28 00:08:40.739: D/dalvikvm(576): GC_CONCURRENT freed 619K, 42% free
10969K/18832K, paused 4ms+4ms, total 37ms
08-28 00:08:40.739: D/dalvikvm(576): WAIT_FOR_CONCURRENT_GC blocked 19ms
08-28 00:08:40.789: I/ActivityManager(480): START u0
{act=com.android.systemui.recent.action.TOGGLE_RECENTS flg=0x10800000
cmp=com.android.systemui/.recent.RecentsActivity} from pid 576
08-28 00:08:40.859: D/dalvikvm(480): GC_CONCURRENT freed 1838K, 14% free
14256K/16568K, paused 2ms+5ms, total 71ms
08-28 00:08:40.859: D/dalvikvm(480): WAIT_FOR_CONCURRENT_GC blocked 56ms
08-28 00:08:42.479: I/ActivityManager(480): Killing
2205:com.example.recepic/u0a10069: remove task
08-28 00:08:43.449: I/ActivityManager(480): START u0
{act=android.intent.action.MAIN cat=[android.intent.category.HOME]
flg=0x10200000 cmp=com.android.launcher/com.android.launcher2.Launcher}
from pid 576
08-28 00:08:43.509: D/dalvikvm(480): GC_FOR_ALLOC freed 637K, 16% free
13951K/16568K, paused 47ms, total 47ms
08-28 00:08:45.319: D/dalvikvm(733): GC_FOR_ALLOC freed 10234K, 48% free
11377K/21852K, paused 23ms, total 32ms
08-28 00:08:45.409: D/dalvikvm(733): GC_FOR_ALLOC freed 60K, 45% free
12220K/21852K, paused 22ms, total 22ms
08-28 00:08:45.489: D/dalvikvm(733): GC_CONCURRENT freed 172K, 38% free
13624K/21852K, paused 7ms+4ms, total 48ms
08-28 00:08:45.489: D/dalvikvm(733): WAIT_FOR_CONCURRENT_GC blocked 43ms
08-28 00:08:45.489: D/dalvikvm(733): WAIT_FOR_CONCURRENT_GC blocked 7ms
08-28 00:08:45.509: D/dalvikvm(733): WAIT_FOR_CONCURRENT_GC blocked 60ms
08-28 00:08:45.529: I/dalvikvm-heap(733): Grow heap (frag case) to
15.541MB for 248848-byte allocation
08-28 00:08:45.569: D/dalvikvm(733): GC_FOR_ALLOC freed 1946K, 37% free
13817K/21852K, paused 36ms, total 36ms
08-28 00:08:45.629: D/dalvikvm(733): GC_CONCURRENT freed <1K, 36% free
14144K/21852K, paused 3ms+3ms, total 58ms
08-28 00:08:45.729: D/dalvikvm(733): GC_CONCURRENT freed 2372K, 36% free
14021K/21852K, paused 1ms+3ms, total 26ms
08-28 00:08:45.729: D/dalvikvm(733): WAIT_FOR_CONCURRENT_GC blocked 17ms
08-28 00:08:45.739: D/dalvikvm(733): WAIT_FOR_CONCURRENT_GC blocked 21ms
08-28 00:08:45.779: D/dalvikvm(733): GC_FOR_ALLOC freed 851K, 35% free
14260K/21852K, paused 20ms, total 20ms
08-28 00:08:45.809: D/dalvikvm(733): GC_FOR_ALLOC freed 355K, 30% free
15388K/21852K, paused 20ms, total 20ms
08-28 00:08:45.929: D/dalvikvm(733): GC_FOR_ALLOC freed 1857K, 27% free
16088K/21852K, paused 19ms, total 19ms
08-28 00:08:45.989: D/dalvikvm(733): GC_CONCURRENT freed 1484K, 20% free
17518K/21852K, paused 2ms+4ms, total 26ms
08-28 00:08:47.989: I/ActivityManager(480): START u0
{act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]
flg=0x10200000 cmp=com.example.recepic/.Receive} from pid 733
08-28 00:08:48.029: D/dalvikvm(2547): Late-enabling CheckJNI
08-28 00:08:48.029: I/ActivityManager(480): Start proc com.example.recepic
for activity com.example.recepic/.Receive: pid=2547 uid=10069 gids={50069,
3003, 1015, 1028}
08-28 00:08:48.129: D/libEGL(2547): loaded /system/lib/egl/libEGL_tegra.so
08-28 00:08:48.139: D/libEGL(2547): loaded
/system/lib/egl/libGLESv1_CM_tegra.so
08-28 00:08:48.149: D/libEGL(2547): loaded /system/lib/egl/libGLESv2_tegra.so
08-28 00:08:48.169: D/OpenGLRenderer(2547): Enabling debug mode 0
08-28 00:08:48.179: W/InputMethodManagerService(480): Starting input on
non-focused client
com.android.internal.view.IInputMethodClient$Stub$Proxy@424166f8
(uid=10033 pid=733)
08-28 00:08:48.209: D/dalvikvm(669): GC_CONCURRENT freed 399K, 7% free
7744K/8304K, paused 6ms+2ms, total 30ms
08-28 00:08:48.229: I/ActivityManager(480): Displayed
com.example.recepic/.Receive: +207ms
08-28 00:08:57.839: D/tag===========(2547): transfer
file:/storage/emulated/0/DCIM/t.jpg
No comments:
Post a Comment