Android多人聊天室小项目

本文记录了一个Android多人聊天室APP的实现过程,重点介绍了客户端的通信功能,包括心跳机制确保长连接,异步收发消息以及如何在子线程中安全更新UI。源代码可在提供的项目地址获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多人聊天室小项目笔记(APP客户端)

这两天自己写了一个多人聊天室,服务器是用Java写的,烂的一批,不想写了,但是安卓客户端上遇到了很多问题还是有必要说一下。

1、功能

这个APP客户端是基于我自己写的服务器来运行的,不过有需要的伙伴可以根据自己的需要进行一些更改,可以把它做成一个手机套接字工具。
主要功能:通过套接字进行远程通信(异步收发)。
附加功能:每次登陆可以为自己添加个性昵称,通过对服务器发来的消息进行不同的操作。

2、实现

有了功能,我们就来实现它。

主要通信功能(写)

因为是客户端,所以我们这里只需要使用一个套接字连接服务器就可以了,下面是代码

package com.example.a9042.socket;

import android.view.View;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;

import com.example.a9042.chatclint.MainWindow;
/*这个类用来进行套接字操作,继承父类Thread*/
public class MyScoket extends Thread{
   
   
    private Socket mySocket;//主要套接字
    private String ip="118.24.107.35";//目标服务器IP
    private int port=11111;//目标服务器端口
    private MainWindow mw;//主窗口实例,用来实现主类的一些方法
    private DataOutputStream pw;//输出流,用来发送消息
    private Receive rec;//接收类的实例化对象,主要用来启动接收服务器消息线程
    /*构造方法,传递主窗口实例*/
    public MyScoket(MainWindow w){
        this.mw=w;
    }
    /*子线程run方法*/
    public void run(){
        if(mySocket==null){
            //mw.showToast("正在连接服务器");
            while(true){
                try {
                    mySocket=new Socket(ip,port);//通过Socket构造器将服务器IP和端口绑定到套接字
                    /*如果套接字连接上了*/
                    if(mySocket.isConnected()){
                        mw.showToast("登陆成功");//通过弹出消息提示登陆服务器成功
                        rec=new Receive(this.mySocket,mw);//通过receive类构造器将套接字和主窗口传递给rec对象
                        rec.start();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值