`
mickey_hou
  • 浏览: 247742 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java、 socket聊天服务端(考虑模式优化)

阅读更多
public class TalkServer {

private static ServerSocket serverSocket;

public static void main(String[] args) {
connect();
}

/*
* 服务器连接
*/
private static void connect() {
try {
serverSocket = new ServerSocket(9999);
System.out.println("---服务器监听套接字中---");
Socket socket = serverSocket.accept();
System.out.println("---监听获取---");

GetMessage gm = new GetMessage(socket);        
SendMessage sm = new SendMessage(socket);         
Thread gt = new Thread(gm);        
Thread st = new Thread(sm);         
gt.start();        
st.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}

public class GetMessage implements Runnable {

BufferedReader bufferedReader;  // 读取信息流

public GetMessage(Socket socket) {
// TODO Auto-generated constructor stub
try {
this.bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

@Override
public void run() {
// TODO Auto-generated method stub
String value = "";
while(true){
try {
value = this.bufferedReader.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

if (null != value && !value.trim().equals("")) {
if (value.equals("exit")) {
break;
}
System.out.println("客户端说:" + value);
}
}
}

}

public class SendMessage implements Runnable {

PrintWriter printWriter;
BufferedReader bufferedReader;

public SendMessage(Socket socket) throws IOException{
// TODO Auto-generated constructor stub
this.printWriter = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())) , true);
this.bufferedReader = new BufferedReader(new InputStreamReader(System.in));
}

@Override
public void run() {
// TODO Auto-generated method stub
String input = "";
try {
while (true) {
input = this.bufferedReader.readLine();
if (null != input && !input.trim().equals("")) {
this.printWriter.println(input.trim());
}
System.out.println("服务器说:" + input.trim());
}
} catch (IOException e) {
e.printStackTrace();
} finally {
this.printWriter.flush();
}
}
}
分享到:
评论

相关推荐

    HP用SOCKET实现(客户端---服务端)

    这不仅适用于简单的命令响应模式,还可以扩展到更复杂的数据交换场景,如实时聊天、文件传输等。然而,在实际应用中,还需要考虑安全性、效率和错误处理等问题,以确保通信的稳定性和可靠性。 例如,可以增加身份...

    Java实现Socket长连接和短连接

    在Java编程中,Socket是网络通信的基础,它允许两个应用程序通过TCP/IP协议进行数据传输。Socket连接分为两种类型:长连接和短连接。这两种连接方式各有特点,适用于不同的应用场景。 **1. 短连接(Short ...

    用Java Socket实现一个简单的基于P2P范型的即时聊天系统。

    在本文中,我们将深入探讨如何使用Java的Socket编程来实现一个简单的基于P2P(Peer-to-Peer)范型的即时聊天系统。P2P网络架构允许每个节点既是客户端也是服务器,这种模式使得数据传输更加分散,提高了系统的可扩展...

    Java Socket 开发框架【susu】

    Java Socket 开发框架【susu】是一个自定义的、基于异步模式的网络通信解决方案,专为Java开发者设计。在Java编程中,Socket是实现客户端与服务器之间通信的基础,它提供了进程间的网络通信能力。而将Socket编程封装...

    基于C/S模式的Java聊天室

    总的来说,基于C/S模式的Java聊天室项目涵盖了网络编程、多线程、GUI设计、数据结构、安全性以及服务端优化等多个Java编程的重要知识点,是学习和提升Java技能的绝佳实践项目。开发者在实现这样一个系统时,不仅能...

    java-socket网络编程(tcp)

    Java Socket网络编程主要涉及到TCP(传输控制协议)的使用,它是面向连接的、可靠的通信协议。在Java中,Socket是实现TCP通信的基础类,它提供了客户端与服务器端之间的双向通信通道。下面将详细介绍Java Socket与...

    Java聊天程序,包括服务端和客户端

    Java聊天程序是一个基于Java编程语言实现的通信应用,它涵盖了服务端和客户端两大部分,用于实现用户之间的实时信息交流。这个程序通常会利用Socket编程来建立网络连接,并使用多线程技术来处理并发的客户端请求。...

    Socket 服务端 DEMO

    Socket服务端DEMO是一个基于Java实现的网络通信示例,主要展示了如何在服务器端使用Socket进行数据传输。在Android开发中,Socket通信常用于设备之间的实时互动,例如即时聊天、文件传输等场景。下面我们将详细探讨...

    Java版聊天软件聊天室

    【Java版聊天软件聊天室】是一款使用Java编程语言开发的即时通讯应用,它包含了客户端和服务端两大部分,专为学生进行毕业设计而设计。这款软件的实现基于Java的强大特性和丰富的网络通信库,使得开发者能够构建稳定...

    基于Java即时聊天系统的设计与实现doc

    在即时聊天系统中,Java的Socket编程用于实现客户端与服务器之间的数据传输,而多线程技术则保证了多个并发连接的处理。 2.2 C/S模式介绍 C/S(Client/Server)模式是即时聊天系统常用的架构,客户端负责用户界面...

    简单的java聊天程序

    最后,Java聊天程序的部署通常涉及到将编译后的类文件打包成JAR文件,并在服务器上启动服务端程序。客户端应用程序则可以直接运行在用户的设备上,通过输入服务器地址和端口号进行连接。 总的来说,开发一个简单的...

    用JAVA实现基于CS模式的聊天室

    【Java实现CS模式的聊天室】是一个典型的网络编程项目,主要涉及客户端-服务器(Client-Server,简称CS)架构的设计与实现。在这个项目中,Java语言被用来构建两端的通信逻辑,即客户端和服务器端。下面我们将深入...

    大学生计算机网络课程期末作业java聊天系统-多线程cocket

    标题中的“大学生计算机网络课程期末作业java聊天系统-多线程cocket”表明这是一个基于Java编程语言实现的网络聊天系统,特别强调了多线程和Socket通信技术的应用。在这个项目中,学生可能需要理解并应用计算机网络...

    java实现简单聊天功能

    Java 实现简单聊天功能主要涉及的是网络编程中的Socket技术,这是一种基于TCP协议的通信方式,允许两台计算机之间建立可靠的、双向的数据传输连接。在这个场景下,我们将学习如何使用Java来构建一个简单的聊天应用...

    Java WebSocket 多人聊天室Deomo

    而WebSocket则允许建立持久的连接,使得数据能够在客户端和服务器之间双向流动,极大地优化了实时应用,如聊天室、在线游戏、股票交易等场景。 Java WebSocket API是Java EE 7标准的一部分,它提供了一种在Java...

    java局域网聊天工具 服务器端

    1. **网络编程**:Java的`java.net`包提供了Socket编程接口,用于创建TCP/IP连接,这是局域网聊天工具的基础。服务器端需要创建一个ServerSocket监听特定的端口,等待客户端的连接请求。一旦有连接请求,服务器会...

    基于Java即时聊天系统的设计实现分析.doc

    综上所述,基于Java的即时聊天系统设计与实现涉及了计算机网络的基本原理,如TCP/IP协议、客户端/服务端模式,以及Java的Socket编程和多线程技术。通过这样的系统设计,可以满足大量用户同时在线交流的需求,提供...

    java做的聊天室完整版《源码》

    本资源提供的是一个基于Java技术实现的聊天室完整版源码,对于学习Java网络编程、多线程以及Socket通信的开发者来说,这是一个极好的实践案例。下面将对这个Java聊天室的核心知识点进行详细解读。 1. **Java网络...

    Java源码包100个设计实例.zip

    Java聊天程序,包括服务端和客户端.rar Java聊天软件Visual Chat v1.91源码.rar Java访问权限控制源代码.rar Java读写文本文件的示例代码 Java赌神游戏网络版源代码.rar Java超市管理,SQL2000+源代码.rar Java超市...

    Java语言编写的聊天室程序

    【Java语言编写的聊天室程序】是一个基于Java技术构建的多用户交互系统,允许用户进行实时文本交流。...开发过程中还需要考虑性能优化、用户体验设计以及可能的扩展性需求,如文件传输、音频/视频聊天等。

Global site tag (gtag.js) - Google Analytics