socket编程机制:客户端与服务端通过socket套接字连接后都会返回一个实例对象,分别保存这个对象,就相当于保存的对方的地址。Socket理解为一个可以连通网络上不同计算机程序之间的管道,把一堆数据从管道的A端扔进去,则会从管道的B端出来。管道的端口由两个因素来唯一确认,即机器的IP地址和程序所使用的端口号。端口号就是程序员指定的一个数字,许多著名的木马程序在网络上扫描不同的端口号就是为了获取一个可以连通的端口从而进行破坏。程序不要使用太小的端口号,它们一般被系统占用了,也不要使用一些常用的端口,一般来说使用1000~5000之内的端口比较好。
实现功能:
1.实现手机相册中的单个图片上传到电脑指定路径。(手机相册存在固定位置/sdcard/DCIM/Camera/...)
输入*.jpg,*.jpeg等
2.修改之前上传固定位置的单个图片为输入相册中的多个图片名称,用逗号“,”分隔开,然后上传到电脑,提示用户是否上传成功。
3.因为上传照片很难分清哪个照片需要添加照片描述,后来想使用ExpandableListView下拉列表让用户选择图片内容类型,选择后自动添加到输入框和图片名称以“:”分开,上传电脑以此描述类型命名为图片名称,为防止图片重名,前面加上上传时原图片名称,上传同一张图片时才会发生覆盖,不会引起图片丢失,还能直观查看图片内容描述。
4.改善项目功能范围太小的缺陷,添加输入手机内某个文件所在路径,就可获取路径下的所有图片全部上传到电脑。
注意:测试时最好用真机,否则虚拟机虚拟内存没有图片无法测试功能是否成功。
1.首先搭建好客户端环境,新建android-project ,新建activity
将手机中的图片发送字节给服务端
2.创建手机界面布局mainactivity.xml
界面中有textview、EditText、Button、ExpandableListView控件
这里的界面效果:
3.MainActivity----socket客户端:接收手机图片信息并处理
完成任务1.在固定路径下(sdcard/./.)查找图片文件,输入图片名称实现上传,
2.实现输入手机内图片文件的绝对路径,然后点击上传按钮,可将图片上传到电脑指定位置。服务器来接收图片并指定存放位置。
3.实现选择图片的类型并将其图片复制后重命名,以便用户在电脑分辨图片内容并使用。
4.ExpandableListView下拉列表的的学习和使用,重写下拉列表适配器,显示自定义样式