Java编写一个简单的“服务器—客户端”聊天程序

这篇博客介绍如何使用Java在MyEclipse平台上创建一个简单的聊天程序。通过Server类监听端口,ServerHandler线程处理客户端交互,利用Vector管理用户,并通过关键字@实现群聊和私聊功能。客户端通过登录、退出监听器进行操作,实现聊天和用户状态通知。
摘要由CSDN通过智能技术生成

鄙人以MyEclipse为平台实现简单的聊天程序
1、创建一个Server类模块:创建ServerSocket,在指定端口监听;当有用户登录, 接受套接字输入流,显示其登录信息,调用ServerHander线程进行管理。
代码实现:

public class Server {
	private ServerSocket server;
	public Server(int port) throws IOException{ 
		server = new ServerSocket(port);  // new一个实例对象端口
		
		while(true){    
		   Socket conn=server.accept(); //建立客户端套接字 
		   DataInputStream in =new DataInputStream(conn.getInputStream()); 
		   String who=in.readUTF();
		   System.out.print("Client" +"(ip:"+conn.getInetAddress()+")"+who+" 进入!"+"\n"); 
		   ServerHander cn=new ServerHander(who,conn);
		   cn.start(); 
     }
}
public static void main(String []args)throws IOException{ 
          new Server(9595);
	}  
}//Server类模块结束

2、创建ServerHander模块:这个模块是整个服务器实现与客户端交互的核心代码,互相添加或者解密关键字,实现群聊、私聊上下线提醒的功能,创建Vector 对象,可以方便用户管理,Vector对象是可变数组,可以实现线程同步。用户发送消息通过关键字@进行解析 ,@前面的字符串为发送的消息,后面的字符串为发送对象。
2.1创建线程

 Socket socket;
		 DataInputStream in;
		 DataOutputStream out;
		 String who;
protected static Vector<ServerHander>user=new Vector<ServerHander>();//把用户线程放入可变对象数组
public ServerHander(String name,Socket socket) throws IOException{   
	this.who = name;
	this.socket = socket;
	in =new DataInputStream(new BufferedInputStream(socket.getInputStream()));
	out =new DataOutputStream(new BufferedOutputStream(socket.getOutputStream()));
}
public void run(){
	try{ 
		user.addElement(this); //Vector中增加新线程
		sendallclient(who+"上线");
		senduser();//为每一个客户端更新在线用户
while(true){ 
		String news=in.readUTF();
		int index = news.lastIndexOf("@");/
  • 13
    点赞
  • 107
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值