`
吃猫的鱼
  • 浏览: 45539 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Java网络聊天之客户端

阅读更多

  前面发了服务端,下面是客户端

  【Socket读取】 

/**
 * [Product]
 *     netChat
 * [Copyright]
 *     Copyright © 2012 All Rights Reserved.
 * [FileName]
 *     ClientReader.java
 * [History]
 *     Version  Date      Author     Content
 *     -------- --------- ---------- ------------------------
 *     1.0.0    2012-3-12   yangchao    最初版本
 */
package com.net.chat.client;

import java.io.DataInputStream;
import java.io.IOException;

/**
 * <b>Summary: </b>
 *      客户端端Socket读取类
 * <b>Remarks: </b>
 *        客户端端Socket读取类
 */
public class ClientReader extends Thread{
	private DataInputStream dis;

	public ClientReader(DataInputStream s) {
		this.dis = s;
	}

	public void run() {
		String info;
		try {
			while (true) {
				info = dis.readUTF();
				System.out.println("对方说:" + info);
				if (info.equals("bye")) {
					System.out.print("对方一下线");
					System.exit(0);
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

   【Socket写入】 

/**
 * [Product]
 *     netChat
 * [Copyright]
 *     Copyright © 2012 All Rights Reserved.
 * [FileName]
 *     ClientWriter.java
 * [History]
 *     Version  Date      Author     Content
 *     -------- --------- ---------- ------------------------
 *     1.0.0    2012-3-12   yangchao    最初版本
 */
package com.net.chat.client;

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

/**
 * <b>Summary: </b>
 *      客户端Socket写入类
 * <b>Remarks: </b>
 *        客户端Socket写入类
 */
public class ClientWriter extends Thread{
	private DataOutputStream dos;

	public ClientWriter(DataOutputStream s) {
		this.dos = s;
	}

	public void run() {
		String info;
		InputStreamReader is = new InputStreamReader(System.in);
		BufferedReader bf = new BufferedReader(is);
		while (true) {
			try {
				info = bf.readLine();
				dos.writeUTF(info);
				if (info.equals("bye")) {
					System.out.print("你已经下线");
					System.exit(0);
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}

 【客户端Main方法】

/**
 * [Product]
 *     netChat
 * [Copyright]
 *     Copyright © 2012 All Rights Reserved.
 * [FileName]
 *     TestClient.java
 * [History]
 *     Version  Date      Author     Content
 *     -------- --------- ---------- ------------------------
 *     1.0.0    2012-3-12   yangchao    最初版本
 */
package com.net.chat.client;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

/**
 * <b>Summary: </b>
 *      客户端Main方法
 * <b>Remarks: </b>
 *        客户端Main方法
 */
public class TestClient {
	public static void main(String[] args) {
		try {
			Socket s1 = new Socket("127.0.0.1", 8888);

			OutputStream os = s1.getOutputStream();
			DataOutputStream dos = new DataOutputStream(os);

			InputStream is = s1.getInputStream();
			DataInputStream dis = new DataInputStream(is);

			new ClientReader(dis).start();
			new ClientWriter(dos).start();

		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

 

分享到:
评论

相关推荐

    Java聊天室客户端

    【Java聊天室客户端】是一个基于Java技术开发的实时通信应用,它允许用户通过网络进行文本聊天。这个项目的核心目标是创建一个用户友好的界面,提供登录功能以及一个互动的聊天平台。下面将详细介绍该客户端的一些...

    JAVA聊天 服务端 客户端

    总结来说,"JAVA聊天服务端客户端"是一个涵盖Java网络编程、多线程、用户界面设计、数据传输安全等多个领域的项目。服务端和客户端通过Socket通信,处理并发连接,并确保数据的安全传输。了解这些知识点对于开发和...

    Java通信项目之客户端UI实现以及交互

    在Java通信项目中,客户端UI实现以及交互是构建应用程序的关键部分,尤其是对于类QQ聊天软件这样的实时通讯平台。本文将深入探讨如何使用Java技术来设计和实现用户界面,并确保其与后端通信的有效交互。 首先,我们...

    基于Java局域网聊天工具客户端源码

    通过学习和理解这个项目,开发者不仅可以深入理解Java网络编程,还能掌握客户端应用的设计和实现。对于进一步开发类似应用或者提升网络编程技能,这是一个很好的实践案例。在HDClient文件中,包含了客户端的全部源...

    java的聊天室客户端

    同时,这也是一个很好的学习机会,让你深入理解Java网络编程和多线程编程的基础知识。 总之,创建一个Java聊天室客户端是一个涉及多种技术的综合项目,它涵盖了GUI编程、网络通信和并发编程等多个方面,对于提升...

    合肥工业大学利用java实现聊天的客户端

    实验四是这一学习过程中的一个关键环节,学生们可能需要根据指导完成一个基本的Java聊天客户端,通过实际操作加深对Java网络编程和多线程的理解。在这个过程中,他们会遇到并解决各种问题,如连接超时、数据解析错误...

    java 聊天客户端

    Java聊天客户端是一款基于Java编程语言实现的实时通讯应用,它允许用户通过网络进行文本、语音甚至视频的交流。本文将深入探讨Java聊天客户端的核心技术、设计原则和实现过程。 一、核心技术 1. Java Socket编程:...

    java 聊天程序 客户端和服务器端 课程设计

    总的来说,这个Java聊天程序课程设计涵盖了网络编程的核心要素,通过实践可以深入了解客户端-服务器架构的工作原理,以及Java在这一领域的应用。无论你是初学者还是有一定经验的开发者,这个项目都将是一次宝贵的...

    Java网络聊天客户端

    ### Java网络聊天客户端知识点 #### 一、项目概述 本项目为一个简单的Java网络聊天客户端程序,主要功能是实现客户端与服务器之间的基本文本聊天交互。客户端通过Socket编程连接到指定的服务器地址(本例中为...

    java聊天室客户端.rar

    这个项目对于学习Java网络编程、多线程以及GUI设计等技术有着很好的实践价值。下面我们将详细探讨这个项目所涉及的知识点。 1. **Java基础知识**:首先,你需要对Java有基本的了解,包括语法、类和对象的概念、异常...

    Java 仿QQ聊天程序 含客户端和服务器.rar

    Java 仿QQ聊天程序源代码,包括了聊天客户端和服务器,前几年的程序,不过现在学习Java仍然很有用,一些方法和思路还是很值得学习的,对于转型Android开发的话,同样具有很强的借鉴意义。本Java聊天实例代码完整,...

    Java聊天室服务器客户端

    "Java聊天室服务器客户端"项目就是利用Java的基础知识,特别是在客户端-服务器通信领域的应用,具体涉及Java Socket编程。本篇将深入探讨Java Socket通信以及如何构建一个简单的聊天室服务器和客户端。 Java Socket...

    java多人聊天客户端,模拟聊天室

    在本项目中,"java多人聊天客户端,模拟聊天室"是一个使用Java编程语言实现的课程作业,旨在构建一个基本的在线聊天系统。这个系统允许多个用户登录并进行实时的文本交流,模拟了实际聊天室的功能。以下是这个项目...

    JAVA聊天室客户端

    Java聊天室客户端是一种基于Java编程语言实现的网络通信应用程序,它允许用户通过互联网与其他用户进行实时文本交流。在这个项目中,开发者使用了Java的核心特性以及网络编程技术来创建了一个功能完善的客户端。以下...

    java多人聊天客户端和服务器端

    综上所述,这个Java多人聊天系统展示了Java网络编程的基本原理和实践,包括Socket通信、多线程处理、以及简单的文本协议。对于初学者来说,这是一个很好的学习和实践项目,可以帮助理解网络编程的关键概念。

    java网络聊天室包含服务器端和客户端

    用java编写的网络聊天室,包括服务器和客户端程序, 资源不错,所以转载过来,感谢这位作者。

    学位论文-—基于java的聊天室客户端.doc

    同时,Java 语言也提供了对计算机网络编程的基本理论知识,如 TCP/IP 协议、客户端/服务器端模式(Client/Server 模式)、网络编程的设计方法等。 系统设计 该系统主要包括了服务器端和客户端界面使用两部分。...

    java多线程局域网聊天,服务器+客户端

    2. **Java网络编程**: - **Socket编程**:Java的`java.net.Socket`和`ServerSocket`类用于建立TCP连接,实现客户端和服务器的通信。 - **DatagramSocket**:对于UDP协议,使用`DatagramSocket`和`DatagramPacket`...

    java 聊天室客户端源代码

    Java聊天室客户端源代码是一个基于Java编程语言实现的简单聊天应用程序,它允许用户与其他在线用户进行实时交流。这个源代码提供了基本的聊天功能,对于初学者来说,是学习网络编程和多线程通信的一个很好的实践案例...

    java 聊天室 有服务器 客户端

    Java聊天室程序是一种基于网络通信的应用,它包含服务器和客户端两个关键部分。在这个场景中,`Server.java` 文件是服务器端代码,而 `Client.java` 文件则是客户端代码。以下是关于这个Java聊天室程序的一些详细...

Global site tag (gtag.js) - Google Analytics