`
郑云飞
  • 浏览: 818236 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java模拟聊天

阅读更多
package randomAccessFile;

import java.io.IOException;
import java.io.PipedReader;

//消息接收端
class Receive
{
	static PipedReader pr;
	static Send s;
	public Receive() {
		
	}
	public Receive(Send s)
	{
		this.s=s;
	}
	public Receive(PipedReader pr,Send s)
	{
		super();
		this.pr = pr;
		this.s=s;
	}
	public static String recevie() throws IOException//接收消息
	{
		String l="";
		char ch='\0';
		while((ch=(char)pr.read())!='?')
		{
			l+=ch;
		}
		int length=Integer.parseInt(l);
		char [] message=new char[length];
		pr.read(message);
		if(pr!=null)
		{
		// pr.close();
		}
		String m=new String(message);
		System.out.println("收到消息:"+m);
		if(m.equals("88"))
		{
			System.out.println("聊天结束!");
			//关闭流
			System.exit(0);
		}
		//继续通知发送
		else
		{
		  s.send();
		 
		}
		return m;
	}
	
}

 

package randomAccessFile;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PipedWriter;

//消息发送端
class Send 
{
	PipedWriter pw;
    Receive rec;
    public Send(PipedWriter pw)
    {
    	this.pw=pw;
    }
	public Send(PipedWriter pw,Receive rec)
	{
		super();
		this.pw = pw;
		this.rec=rec;
		
	}
	public void send() throws IOException
	{
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		String message="";
		String messageTest="";
		do
		{
			System.out.println("请输入你要发的消息:");
			message=br.readLine();
			messageTest=message.trim();//去掉左边空格
			if(messageTest.length()==0)
			{
				System.out.println("不能发送空消息");
			}
			
		}
		while(messageTest.equals(""));
		System.out.println("你发送的内容是:"+message);
		pw.write(message.length()+"?"+message);
		//通知接收
		rec=new Receive();
		rec.recevie();
		
	}

}

 

package randomAccessFile;
import java.io.*;
public class Test
{
	public static void main(String[] args) throws IOException 
	{
		
		PipedWriter pw=new PipedWriter();
		PipedReader pr=new PipedReader();
		Send s=new Send(pw);
		Receive r=new Receive(pr,s);
		pr.connect(pw);
		boolean a=true;
		try
		{
			while(a)
			{
			 s.send();
			 r.recevie();
			}
		} 
		catch (IOException e)
		{			
			e.printStackTrace();
		}
			if(pw!=null)
			{
				pw=null;
			}
			if(pr!=null)
			{
				pr=null;
			}
		
	
	}
}

 

分享到:
评论

相关推荐

    java模拟聊天软件带安装的

    【Java模拟聊天软件】是一种基于Java编程语言开发的简单通讯工具,它可能包含了基础的文本聊天功能,允许用户间进行实时交互。虽然它的功能可能不如商业级的聊天软件如QQ全面,但作为学习和分析的对象,它能帮助我们...

    Java 模拟聊天室

    基于UDP协议的Java聊天室案例程序,适合Java初学者,用来练习和熟悉Java中UDP通讯

    Java模拟聊天室.zip

    在本项目中,"Java模拟在线聊天室"是一个基于Java编程语言实现的简易聊天应用程序,旨在提供一个模拟的网络环境,使用户能够进行实时的文字交流。这个程序通常涉及到多线程、网络编程以及用户界面设计等多个Java核心...

    孙汝平java模拟聊天程序,一共俩,Chat.jar和ChatClient.jar

    孙汝平java模拟聊天程序,一共俩,Chat.jar和ChatClient.jar 孙汝平java模拟聊天程序,一共俩,Chat.jar和ChatClient.jar

    java模拟小聊天程序

    在Java编程语言中,开发一个简单的聊天程序涉及多个核心知识点,包括网络编程、多线程、输入/输出流以及对象序列化。以下是对这些概念的详细解释: 1. **网络编程**:Java提供了丰富的API来处理网络通信,如`java...

    Java 模拟QQ做的聊天小系统

    自己模拟QQ做的小系统,还有微信汽泡聊天效果!

    java模拟qq聊天

    在Java编程领域,使用Swing库和Socket网络编程可以实现一个基本的QQ聊天模拟器。以下将详细讲解这个过程中的关键知识点。 首先,Java Swing是Java标准库中的一个图形用户界面(GUI)工具包,用于构建桌面应用。它...

    JAVA socket 模拟聊天室

    本项目"JAVA socket 模拟聊天室"旨在通过Socket技术,构建一个简单的客户端与服务器之间的即时通讯系统,让双方可以实时发送和接收消息。下面我们将深入探讨Socket的基本概念、工作原理以及如何使用Java实现一个简单...

    Java简单聊天器模拟

    Java简单聊天器模拟是一个基于网络通信的项目,主要利用了Socket编程来实现客户端与服务器端的交互。在本文中,我们将深入探讨这个项目的核心概念、技术实现和应用场景。 首先,我们要理解Socket的基本概念。Socket...

    javaswing 模拟QQ聊天

    在"javaswing 模拟QQ聊天"这个项目中,我们看到一个学生或开发者尝试使用Java Swing来构建一个类似于QQ的聊天应用程序,这涉及到多线程通信,这是在进行实时交互应用时的关键技术。 1. **Java Swing基础知识**: -...

    java局域网聊天模拟qq

    Java局域网聊天模拟QQ项目是一个使用Java编程语言实现的简单聊天应用,旨在模拟QQ的基本功能,让用户在局域网内可以进行实时通信。这个项目涵盖了多个Java技术和网络编程的关键概念,对于初学者和进阶者都是一个很好...

    Java模拟实现QQ聊天

    这个模拟聊天系统旨在提供类似于真实QQ应用的体验,包括用户登录、两人之间的私聊以及下线检测等核心功能。让我们逐步解析这个项目的关键知识点。 1. **Java基础**:Java是一种广泛使用的面向对象的编程语言,其...

    模拟聊天软件(多用户).zip

    总之,这个Java模拟聊天软件展示了网络编程的基本原理和实践方法,对于希望深入理解和掌握网络应用开发的初学者来说,是一份宝贵的参考资料。通过实际操作和学习,不仅可以提升编程技能,还能增强对网络通信机制的...

    JAVA模拟QQ在线聊天源码下载毕业设计

    【JAVA模拟QQ在线聊天源码下载毕业设计】这个项目是一个基于Java编程语言实现的QQ聊天应用的模拟系统,主要用于帮助学生进行毕业设计实践。在这个项目中,你可以学习到如何运用Java技术来构建一个实时的、多用户交互...

    Java模拟QQ聊天程序完整源代码.rar

    Java QQ聊天程序源码,userInfo.properties拷贝到C盘根目录下,存放与服务器连接上的对应的Socket,作用是保存服务器与客户端之间的流,便于服务器给每个客户端进行回发消息。  SocketListener内部类:监听客户端...

    java swing 编程 模拟聊天室

    在这个项目中,我们讨论的是如何使用Java Swing来创建一个模拟聊天室。这个聊天室包括一个服务端和多个客户端,允许用户通过填写IP地址、端口号和昵称进行多用户间的实时交流。 **服务端**是整个聊天系统的基石,它...

    JAVA模拟QQ聊天程序

    用 JAVA写的 模拟QQ 聊天程序。。。。。。。。。。。在下载后,运行com.qq.server包地下的QQServer类,先把服务器启动起来,然后运行com.qq.clinet包地下的QQClinet类。运行客户端。中间需要输入绑定的端口自己设一...

Global site tag (gtag.js) - Google Analytics