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();
}
}
}
}
}
分享到:
相关推荐
Java自定义线程模型在软件开发中扮演着重要的角色,特别是在高性能、高并发的应用场景,如游戏服务器。本文将深入探讨如何在Java中构建自定义线程模型,并分享一些实践经验。 首先,我们要明白为什么要自定义线程...
Java多线程聊天室是一个基于C/S(Client/Server)架构的简单通信示例,它利用了Java的网络编程和多线程特性。在这样的系统中,服务器端(Server)使用`ServerSocket`来监听客户端(Client)的连接请求,而客户端则...
在Java编程领域,多线程是一项关键技能,尤其是在开发网络应用程序如局域网聊天软件时。本主题将深入探讨如何利用SWT(Standard Widget Toolkit)和Java来构建一个局域网内的聊天应用,并解决其中涉及的多线程问题。...
本项目"clientThread.rar"是一个Java实现的客户端聊天程序,利用了多线程技术来实现实时的聊天功能。下面我们将深入探讨与这个项目相关的Java多线程和聊天应用的知识点。 1. **Java多线程**:在Java中,多线程通过...
在这个“多线程精品资源--Java NIO+多线程实现聊天室”的压缩包中,我们可以推测它包含了一套关于如何使用Java NIO和多线程技术来创建一个实时聊天应用的教程或示例代码。 首先,多线程是Java中并行处理的基础。...
Java多线程聊天程序是基于GUI(图形用户界面)和Socket通信实现的,它允许多个用户通过网络进行实时交流。这个程序的核心在于如何利用Java的并发特性创建多线程环境,以及如何通过Socket来实现客户端与服务器之间的...
1. **Java Socket编程**:Java聊天器的基础是Socket编程,它允许两个或多个网络上的设备进行通信。Socket提供了在网络之间传输数据的低级接口,通过创建服务器Socket监听客户端的连接请求,然后客户端Socket与服务器...
【Java聊天系统源码解析】 本Java聊天系统源码是一个基于MVC...通过学习和分析这个Java聊天系统源码,开发者不仅可以深入了解Java网络编程、多线程、MVC架构等核心概念,还能进一步提升在实际项目中的应用能力。
Java聊天系统是一款基于Java编程语言实现的通信应用,...综上所述,Java聊天系统涉及了网络编程、多线程、数据库操作、安全性、UI设计等多个核心知识点,开发者需要综合运用这些技术来构建稳定、高效的局域网聊天环境。
在本文中,我们将深入探讨如何构建一个简单的单线程聊天系统,主要关注GUI编程、单线程处理以及输入输出...虽然这个例子展示了基本的原理,但在实际应用中,为了提高性能和可扩展性,通常会采用多线程或异步编程模型。
综上所述,这个"JAVA聊天器"项目涵盖了多个重要的IT知识点,包括Java语言的基础、网络编程、多线程、IO流、数据序列化、GUI设计以及事件处理等,对于学习和提升Java开发技能有着很好的实践价值。
在本项目"基于Java+socket实现多线程聊天室-控制台版"中,开发者创建了一个简单的、基于命令行界面的多人聊天应用。这个应用利用了Java编程语言以及Socket网络编程技术来实现实时的通信功能。以下是关于这个项目的...
2. **多线程**:为了实现多个用户同时在线聊天,Java聊天程序需要使用多线程技术。每个客户端连接都会创建一个独立的线程来处理,这样服务器就能并发地处理多个客户端请求。`java.lang.Thread` 类是Java中用于创建新...
Java聊天室是一个典型的网络编程项目,它涉及到许多关键的Java技术,特别适合初学者学习和实践。在这个项目中,我们将探讨以下知识点: 1. **Java网络编程基础**:Java提供了丰富的API来支持网络编程,包括Socket和...
Java聊天程序源代码是Java编程领域中的一个基础实践项目,主要展示了如何利用Java技术实现一个简单的聊天应用程序。这个程序对于初学者和中级开发者来说是一个很好的学习资源,可以帮助他们加深对网络编程、多线程和...
在Java编程领域,创建一个多人聊天室是一项常见的实践任务,它涉及到网络编程、多线程以及用户界面设计等多个核心知识点。下面将详细讲解这些技术点。 首先,Java多人聊天室的核心在于实现服务器和客户端的通信。...
【JAVA聊天室 源码】是一个初学者在掌握J2SE基础后,尝试实现的交互式应用程序。这个项目展示了如何运用Java的核心概念和技术来创建一个实时通信平台。以下是这个项目涉及的关键知识点: 1. **Java基础知识**:首先...
在Java编程领域,创建一个聊天室是一项常见的实践项目,它涉及到多线程、网络编程以及交互式用户界面等核心概念。下面将详细讲解这个“java聊天室”项目中涉及的知识点。 1. **Java基础** - **面向对象**:Java是...
综上,这个Java聊天系统通过多线程、Socket通信、数据库操作和事件驱动等方式,实现了高效稳定且功能完整的聊天服务。同时,它展示了在网络编程中如何处理并发、数据同步以及客户端与服务器之间的交互。