`
leoizumi
  • 浏览: 93006 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java 聊天器 (多线程模型)

    博客分类:
  • J2EE
阅读更多
import java.io.DataInputStream;
import java.io.EOFException;
import java.io.IOException;
import java.net.BindException;
import java.net.ServerSocket;
import java.net.Socket;


public class ChatServer {
	boolean started = false;
	ServerSocket serverSocket = null;
	
	public static void main(String[] args) {
		new ChatServer().start();
	}
	
	public void start() {
		try {
			serverSocket = new ServerSocket(7777);
			started = true;
		}
		catch(BindException e2) {
			System.out.println("端口使用中 ... ...");
			System.out.println("请关闭双关程序!");
			System.exit(0);
		}
		catch(Exception e) {
			e.printStackTrace();
		}
		try{
			while(started) {
			    Socket socket = serverSocket.accept();
			    Client client = new Client(socket);
				System.out.println("连接上了... ...");
				new Thread(client).start();
			}
		} catch (IOException e) {
			System.out.println("Server 关闭");
		}finally {
	          try {
				serverSocket.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}	
	}

	class Client implements Runnable {

		private Socket socket;
		private DataInputStream dis = null;
		boolean bConnected = false;
		
		public Client(Socket socket) {
			this.socket = socket;
		
			try {
				dis = new DataInputStream(socket.getInputStream());
				bConnected = true;
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		public void run() {
			try{
          	while(bConnected) {
          		String str = dis.readUTF();
          		System.out.println(str);
          	}	
			}catch (EOFException e) {
				System.out.println("Server 关闭");
			}catch(IOException e) {
				e.printStackTrace();
			}finally {
				try {
					if(dis != null)dis.close();
					if(socket != null)socket.close();
				} catch (IOException e1) {
					e1.printStackTrace();
				}
			}
		}
		
	}
	
}

 

分享到:
评论
1 楼 leoizumi 2010-01-18  
今天会把多客户端实现对话(在客户端添加对话线程)功能的代码发上来!

相关推荐

    java自定义线程模型处理方法分享

    Java自定义线程模型在软件开发中扮演着重要的角色,特别是在高性能、高并发的应用场景,如游戏服务器。本文将深入探讨如何在Java中构建自定义线程模型,并分享一些实践经验。 首先,我们要明白为什么要自定义线程...

    java多线程聊天室

    Java多线程聊天室是一个基于C/S(Client/Server)架构的简单通信示例,它利用了Java的网络编程和多线程特性。在这样的系统中,服务器端(Server)使用`ServerSocket`来监听客户端(Client)的连接请求,而客户端则...

    局域网聊天 SWT Java 多线程问题已经解决

    在Java编程领域,多线程是一项关键技能,尤其是在开发网络应用程序如局域网聊天软件时。本主题将深入探讨如何利用SWT(Standard Widget Toolkit)和Java来构建一个局域网内的聊天应用,并解决其中涉及的多线程问题。...

    clientThread.rar_java 多线程_java 聊天

    本项目"clientThread.rar"是一个Java实现的客户端聊天程序,利用了多线程技术来实现实时的聊天功能。下面我们将深入探讨与这个项目相关的Java多线程和聊天应用的知识点。 1. **Java多线程**:在Java中,多线程通过...

    多线程精品资源--Java NIO+多线程实现聊天室.zip

    在这个“多线程精品资源--Java NIO+多线程实现聊天室”的压缩包中,我们可以推测它包含了一套关于如何使用Java NIO和多线程技术来创建一个实时聊天应用的教程或示例代码。 首先,多线程是Java中并行处理的基础。...

    java多线程聊天程序GUI界面socket实现.rar

    Java多线程聊天程序是基于GUI(图形用户界面)和Socket通信实现的,它允许多个用户通过网络进行实时交流。这个程序的核心在于如何利用Java的并发特性创建多线程环境,以及如何通过Socket来实现客户端与服务器之间的...

    java聊天多聊

    1. **Java Socket编程**:Java聊天器的基础是Socket编程,它允许两个或多个网络上的设备进行通信。Socket提供了在网络之间传输数据的低级接口,通过创建服务器Socket监听客户端的连接请求,然后客户端Socket与服务器...

    java 聊天系统源码

    【Java聊天系统源码解析】 本Java聊天系统源码是一个基于MVC...通过学习和分析这个Java聊天系统源码,开发者不仅可以深入了解Java网络编程、多线程、MVC架构等核心概念,还能进一步提升在实际项目中的应用能力。

    java聊天系统局域网聊天系统

    Java聊天系统是一款基于Java编程语言实现的通信应用,...综上所述,Java聊天系统涉及了网络编程、多线程、数据库操作、安全性、UI设计等多个核心知识点,开发者需要综合运用这些技术来构建稳定、高效的局域网聊天环境。

    单线程聊天系统

    在本文中,我们将深入探讨如何构建一个简单的单线程聊天系统,主要关注GUI编程、单线程处理以及输入输出...虽然这个例子展示了基本的原理,但在实际应用中,为了提高性能和可扩展性,通常会采用多线程或异步编程模型。

    聊天器JAVA做的,可在两台主机上运行,并对话

    综上所述,这个"JAVA聊天器"项目涵盖了多个重要的IT知识点,包括Java语言的基础、网络编程、多线程、IO流、数据序列化、GUI设计以及事件处理等,对于学习和提升Java开发技能有着很好的实践价值。

    基于Java+socket实现多线程聊天室-控制台版.rar

    在本项目"基于Java+socket实现多线程聊天室-控制台版"中,开发者创建了一个简单的、基于命令行界面的多人聊天应用。这个应用利用了Java编程语言以及Socket网络编程技术来实现实时的通信功能。以下是关于这个项目的...

    java聊天程序java聊天程序

    2. **多线程**:为了实现多个用户同时在线聊天,Java聊天程序需要使用多线程技术。每个客户端连接都会创建一个独立的线程来处理,这样服务器就能并发地处理多个客户端请求。`java.lang.Thread` 类是Java中用于创建新...

    JAVA聊天室完整代码

    Java聊天室是一个典型的网络编程项目,它涉及到许多关键的Java技术,特别适合初学者学习和实践。在这个项目中,我们将探讨以下知识点: 1. **Java网络编程基础**:Java提供了丰富的API来支持网络编程,包括Socket和...

    java聊天程序源代码

    Java聊天程序源代码是Java编程领域中的一个基础实践项目,主要展示了如何利用Java技术实现一个简单的聊天应用程序。这个程序对于初学者和中级开发者来说是一个很好的学习资源,可以帮助他们加深对网络编程、多线程和...

    java多人聊天室

    在Java编程领域,创建一个多人聊天室是一项常见的实践任务,它涉及到网络编程、多线程以及用户界面设计等多个核心知识点。下面将详细讲解这些技术点。 首先,Java多人聊天室的核心在于实现服务器和客户端的通信。...

    JAVA聊天室 源码

    【JAVA聊天室 源码】是一个初学者在掌握J2SE基础后,尝试实现的交互式应用程序。这个项目展示了如何运用Java的核心概念和技术来创建一个实时通信平台。以下是这个项目涉及的关键知识点: 1. **Java基础知识**:首先...

    java聊天室

    在Java编程领域,创建一个聊天室是一项常见的实践项目,它涉及到多线程、网络编程以及交互式用户界面等核心概念。下面将详细讲解这个“java聊天室”项目中涉及的知识点。 1. **Java基础** - **面向对象**:Java是...

    基于Java多线程技术的聊天系统设计与开发.pdf

    综上,这个Java聊天系统通过多线程、Socket通信、数据库操作和事件驱动等方式,实现了高效稳定且功能完整的聊天服务。同时,它展示了在网络编程中如何处理并发、数据同步以及客户端与服务器之间的交互。

Global site tag (gtag.js) - Google Analytics