`
huzhenyu
  • 浏览: 184712 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

PC客户端与Android实现图片传送

 
阅读更多
PC服务端,用于发送图片
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;


public class Server {
	public static void main(String[] args) {
		try {
			ServerSocket server = new ServerSocket();
			server.bind(new InetSocketAddress(33336));
			Socket socket = server.accept();
			//socket.getInetAddress();
			DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
			FileInputStream fis = new FileInputStream("E:/workspace/android/Server/test.png");
			int size = fis.available();
			byte[] data = new byte[size];
			fis.read(data);
			dos.writeInt(size);
			dos.write(data);
			dos.flush();
			dos.close();
			fis.close();
			socket.close();
			server.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}


Android客户端用于接收图片并展示
package com.tw;

import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.net.Socket;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

public class TestActivity extends Activity {

	private ImageView imageView = null;
	private Bitmap bmp = null;
	
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		imageView = (ImageView) findViewById(R.id.imageView1);
		Button btn = (Button) findViewById(R.id.button1);
		btn.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {

				Thread t = new Thread() {
					@Override
					public void run() {
						super.run();
						Socket socket = null;
						try {
							socket = new Socket("192.168.102.67", 33336);
							DataInputStream dataInput = new DataInputStream(
									socket.getInputStream());
							int size = dataInput.readInt();
							byte[] data = new byte[size];
							// dataInput.readFully(data);
							int len = 0;
							while (len < size) {
								len += dataInput.read(data, len, size - len);
							}

							ByteArrayOutputStream outPut = new ByteArrayOutputStream();
							bmp = BitmapFactory.decodeByteArray(data, 0,
									data.length);
							bmp.compress(CompressFormat.PNG, 100, outPut);
							//imageView.setImageBitmap(bmp);
							myHandler.obtainMessage().sendToTarget();
						} catch (IOException e) {
							e.printStackTrace();
						} finally {
							try {
								socket.close();
							} catch (IOException e) {
								e.printStackTrace();
							}
						}
					}
				};
				t.start();
			}
		});
	}
	
	private Handler myHandler = new Handler(){
		public void handleMessage(android.os.Message msg) {
			imageView.setImageBitmap(bmp);
		};
	};

}
分享到:
评论
2 楼 LXX516 2014-05-10  
LXX516 写道
你好,运行时出现如下问题:

E/Trace(15019): error opening trace file: No such file or directory (2)

E/PhonePolicy(15019): Could not preload class for phone policy: com.android.internal.policy.impl.PhoneWindow$ContextMenuCallback
请问,怎么解决


不好意思,我忘了改IP地址了,对的没问题。
1 楼 LXX516 2014-05-10  
你好,运行时出现如下问题:

E/Trace(15019): error opening trace file: No such file or directory (2)

E/PhonePolicy(15019): Could not preload class for phone policy: com.android.internal.policy.impl.PhoneWindow$ContextMenuCallback
请问,怎么解决

相关推荐

    2024最新仿默往IM即时通讯系统源码(PC+WEB+IOS+Android)客户端(大小2.4G)网盘链接提取码下载.txt

    2024最新仿默往IM即时通讯系统源码(PC+WEB+IOS+Android)客户端 系统功能配置灵活、海量并发、稳定可靠、数据安全,2小时快速部署、数据安全、单聊群聊、系统通知等通信功能,支持App、PC、Web等多端快速接入。 群...

    仿qq通讯应用程序.zip

    GGTalk开源即时通讯系统(简称GG)是QQ的高仿版,同时支持局域网和广域网,包括客户端(PC客户端、android移动端)、服务端、数据库。 (01)注册、登录、查找用户、添加好友、好友列表。 (02)自拍头像。 (03)...

    精通ANDROID 3(中文版)1/2

    1.1 面向新PC的全新平台  1.2 Android的历史  1.3 Dalvik VM剖析  1.4 理解Android软件栈  1.5 使用Android SDK开发最终用户应用程序  1.5.1 Android模拟器  1.5.2 Android UI  1.5.3 Android基础...

    精通Android 3 (中文版)2/2

    1.1 面向新PC的全新平台  1.2 Android的历史  1.3 Dalvik VM剖析  1.4 理解Android软件栈  1.5 使用Android SDK开发最终用户应用程序  1.5.1 Android模拟器  1.5.2 Android UI  1.5.3 Android基础...

    GG即时通讯系统GGTalk

    GG即时通讯系统GGTalk,包括客户端、服务端、数据库,可在广域网部署使用。支持:文字/语音/视频聊天,文件传送,离线文件,离线消息,视频会议,性能稳定,绝不是一个玩具或demo。 GG即时通讯系统GGTalk 6.2 部署...

    gg2014即时聊天

    GG是QQ的高仿版,包括客户端(PC客户端、android移动端)、服务端、数据库,可在广域网部署使用。我想写一个类似汇总的文章,通过这篇文章,大家可以了解到GG的全貌和最新进展,以及关于一些常见问题的解答也汇总在...

    C# 可在广域网部署运行的即时通讯系统GGTalk-V6.0

    GGTalk开源即时通讯系统(简称GG)是QQ的高仿版,同时支持局域网和广域网,包括客户端(PC客户端、android移动端)、服务端、数据库。 开发环境及GGTalk即时通讯源码说明: 服务端和PC端 :VS2010 ,开发语言:C#, ...

    c# GGTalk-6.2.7z

    GG即时通讯系统GGTalk,包括客户端、服务端、数据库,可在广域网部署使用。支持:文字/语音/视频聊天,文件传送,离线文件,离线消息,视频会议,性能稳定,绝不是一个玩具或demo。 GG即时通讯系统GGTalk 6.2 源码...

    GG即时通讯系统GGTalk 6.2 源码版.rar

    GG即时通讯系统GGTalk,包括客户端、服务端、数据库,可在广域网部署使用。支持:文字/语音/视频聊天,文件传送,离线文件,离线消息,视频会议,性能稳定,绝不是一个玩具或demo。GG即时通讯系统GGTalk 6.2 源码版 ...

    GG即时通讯系统GGTalk 7.0 源码版

    GG即时通讯系统GGTalk 7.0 源码版 更新日志:2020-09-30全新的服务端+PC端+Android端,Android端功能基本已经完整。已实现的功能:(01)注册、登录、查找用户、添加好友、好友列表。(02)自拍头像。(03)文字聊天...

    Sunfounder_Smart_Video_Car_Kit_for_RaspberryPi:用于Raspberry Pi的Sunfounder智能视频车载套件

    TCP客户端程序在PC上运行以发送控制命令。 客户端程序和服务器程序均以Python语言开发。 智能汽车是基于开源硬件Raspberry Pi开发的,融合了机械,电子和计算机方面的知识,因此具有深远的教育意义。 您现在可以...

    GG即时通讯系统GGTalk 7.0 部署版

    GG即时通讯系统GGTalk 7.0 部署版 更新日志:2020-09-30全新的服务端+PC端+Android端,Android端功能基本已经完整。已实现的功能:(01)注册、登录、查找用户、添加好友、好友列表。(02)自拍头像。(03)文字聊天...

Global site tag (gtag.js) - Google Analytics