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();
}
}
}
分享到:
相关推荐
这不仅适用于简单的命令响应模式,还可以扩展到更复杂的数据交换场景,如实时聊天、文件传输等。然而,在实际应用中,还需要考虑安全性、效率和错误处理等问题,以确保通信的稳定性和可靠性。 例如,可以增加身份...
在Java编程中,Socket是网络通信的基础,它允许两个应用程序通过TCP/IP协议进行数据传输。Socket连接分为两种类型:长连接和短连接。这两种连接方式各有特点,适用于不同的应用场景。 **1. 短连接(Short ...
在本文中,我们将深入探讨如何使用Java的Socket编程来实现一个简单的基于P2P(Peer-to-Peer)范型的即时聊天系统。P2P网络架构允许每个节点既是客户端也是服务器,这种模式使得数据传输更加分散,提高了系统的可扩展...
Java Socket 开发框架【susu】是一个自定义的、基于异步模式的网络通信解决方案,专为Java开发者设计。在Java编程中,Socket是实现客户端与服务器之间通信的基础,它提供了进程间的网络通信能力。而将Socket编程封装...
总的来说,基于C/S模式的Java聊天室项目涵盖了网络编程、多线程、GUI设计、数据结构、安全性以及服务端优化等多个Java编程的重要知识点,是学习和提升Java技能的绝佳实践项目。开发者在实现这样一个系统时,不仅能...
Java Socket网络编程主要涉及到TCP(传输控制协议)的使用,它是面向连接的、可靠的通信协议。在Java中,Socket是实现TCP通信的基础类,它提供了客户端与服务器端之间的双向通信通道。下面将详细介绍Java Socket与...
Java聊天程序是一个基于Java编程语言实现的通信应用,它涵盖了服务端和客户端两大部分,用于实现用户之间的实时信息交流。这个程序通常会利用Socket编程来建立网络连接,并使用多线程技术来处理并发的客户端请求。...
Socket服务端DEMO是一个基于Java实现的网络通信示例,主要展示了如何在服务器端使用Socket进行数据传输。在Android开发中,Socket通信常用于设备之间的实时互动,例如即时聊天、文件传输等场景。下面我们将详细探讨...
【Java版聊天软件聊天室】是一款使用Java编程语言开发的即时通讯应用,它包含了客户端和服务端两大部分,专为学生进行毕业设计而设计。这款软件的实现基于Java的强大特性和丰富的网络通信库,使得开发者能够构建稳定...
在即时聊天系统中,Java的Socket编程用于实现客户端与服务器之间的数据传输,而多线程技术则保证了多个并发连接的处理。 2.2 C/S模式介绍 C/S(Client/Server)模式是即时聊天系统常用的架构,客户端负责用户界面...
最后,Java聊天程序的部署通常涉及到将编译后的类文件打包成JAR文件,并在服务器上启动服务端程序。客户端应用程序则可以直接运行在用户的设备上,通过输入服务器地址和端口号进行连接。 总的来说,开发一个简单的...
【Java实现CS模式的聊天室】是一个典型的网络编程项目,主要涉及客户端-服务器(Client-Server,简称CS)架构的设计与实现。在这个项目中,Java语言被用来构建两端的通信逻辑,即客户端和服务器端。下面我们将深入...
标题中的“大学生计算机网络课程期末作业java聊天系统-多线程cocket”表明这是一个基于Java编程语言实现的网络聊天系统,特别强调了多线程和Socket通信技术的应用。在这个项目中,学生可能需要理解并应用计算机网络...
Java 实现简单聊天功能主要涉及的是网络编程中的Socket技术,这是一种基于TCP协议的通信方式,允许两台计算机之间建立可靠的、双向的数据传输连接。在这个场景下,我们将学习如何使用Java来构建一个简单的聊天应用...
而WebSocket则允许建立持久的连接,使得数据能够在客户端和服务器之间双向流动,极大地优化了实时应用,如聊天室、在线游戏、股票交易等场景。 Java WebSocket API是Java EE 7标准的一部分,它提供了一种在Java...
1. **网络编程**:Java的`java.net`包提供了Socket编程接口,用于创建TCP/IP连接,这是局域网聊天工具的基础。服务器端需要创建一个ServerSocket监听特定的端口,等待客户端的连接请求。一旦有连接请求,服务器会...
综上所述,基于Java的即时聊天系统设计与实现涉及了计算机网络的基本原理,如TCP/IP协议、客户端/服务端模式,以及Java的Socket编程和多线程技术。通过这样的系统设计,可以满足大量用户同时在线交流的需求,提供...
本资源提供的是一个基于Java技术实现的聊天室完整版源码,对于学习Java网络编程、多线程以及Socket通信的开发者来说,这是一个极好的实践案例。下面将对这个Java聊天室的核心知识点进行详细解读。 1. **Java网络...
Java聊天程序,包括服务端和客户端.rar Java聊天软件Visual Chat v1.91源码.rar Java访问权限控制源代码.rar Java读写文本文件的示例代码 Java赌神游戏网络版源代码.rar Java超市管理,SQL2000+源代码.rar Java超市...
【Java语言编写的聊天室程序】是一个基于Java技术构建的多用户交互系统,允许用户进行实时文本交流。...开发过程中还需要考虑性能优化、用户体验设计以及可能的扩展性需求,如文件传输、音频/视频聊天等。