本例采用PC端做服务器端,android端做客户端,进行Socket通信;能进行群聊,并能上传android端的本地文件(图片)到PC端,PC端又将收到的文件转发给所有用户。
服务器端
新建Module
新建一个AndroidStudio工程,命名为SimpleChatRoom。为了方便,新建一个Module命名为Server,即服务器端。
客户端
主要有两个页面,登录页面和聊天室
登录页面
是由两个EditText分别用于输入IP地址(服务器端)和端口号,还有一个Button,绑定点击事件用于进入聊天室组成的。
聊天室页面
是由一个EditText用于输入要发送的信息,两个Button分别用来确定发送消息和打开本地相册选择要上传的图片,以及一个RecyclerView用于展现聊天记录(上图中未显示)组成的。
实现效果
客户端运行在PC端上,一个android真机和一个AndroidStudio上的虚拟机(这个虚拟机上系统都是英文的,时区为零时区,故隔了八个小时)作为两个客户端
聊天
服务器端消息:
传文件
将android真机上的图片上传到服务器,然后服务器将图片转发给用户(这里为了更好的体现效果,这里也将图片转发给原上传者)
android真机选择照片:
上传到PC端:
聊天界面:(由于虚拟机的根目录不清楚,故未将图片转发给虚拟机)
服务器端消息: