Android Socket 服务器本地发送图片给客户端

论坛 期权论坛 脚本     
匿名技术用户   2021-1-7 09:04   92   0

第一步服务端

public static void main(String[] arges)  {

/*服务器发送图片给客户端*/
new Thread(){
    @Override
    public void run() {

        System.out.println("发送图片信息");
        ServerSocket server_so_img = null;
        try {
            server_so_img = new ServerSocket(8756);
            while (true){
                Socket socket = server_so_img.accept();
                System.out.println("连接了8756");
                DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
                FileInputStream fis = new FileInputStream("C:\\\\img\\\\img.png");
                int size = fis.available();
                byte[] data = new byte[size];
                fis.read(data);
                dos.writeInt(size);
                dos.write(data);
                dos.flush();
                fis.close();

            }
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}.start();

}

第二步客户端

private Bitmap bmp = null;

Handler handler = null;

private boolean bool;

handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {

case 1:
connectTv.setText(bool + "");//显示true就是连接成功
break;

case 2:
imgImg.setImageBitmap(bmp);
break;
}
}
};

//判断是否和服务器连接成功
case R.id.connect_bu:
new Thread() {
@Override
public void run() {
super.run();
try {
socket = new Socket("192.168.1.54 ", 8756);
bool = socket.isConnected();
Message message = new Message();
message.what = 1;
message.obj = bool;
handler.sendMessage(message);
// socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
break;

case R.id.img_bu:
new Thread(){
@Override
public void run() {
try {
DataInputStream dataInput = new DataInputStream(socket.getInputStream());
int size = dataInput.readInt();
byte[] data = new byte[size];
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(Bitmap.CompressFormat.PNG,100,output);
Message message = new Message();
message.what = 2;
message.obj = bmp;
handler.sendMessage(message);
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
break;
githum网站源码: https://github.com/wwliyineng/Android-Socket

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP