`
mickey_hou
  • 浏览: 238257 次
  • 性别: 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();
}
}
}
分享到:
评论

相关推荐

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

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

    java源码包---java 源码 大量 实例

    Java Socket 聊天通信演示代码 2个目标文件,一个服务器,一个客户端。 Java Telnet客户端实例源码 一个目标文件,演示Socket的使用。 Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例...

    java源码包4

    Java Socket 聊天通信演示代码 2个目标文件,一个服务器,一个客户端。 Java Telnet客户端实例源码 一个目标文件,演示Socket的使用。 Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例...

    java源码包3

    Java Socket 聊天通信演示代码 2个目标文件,一个服务器,一个客户端。 Java Telnet客户端实例源码 一个目标文件,演示Socket的使用。 Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例...

    java源码包2

    Java Socket 聊天通信演示代码 2个目标文件,一个服务器,一个客户端。 Java Telnet客户端实例源码 一个目标文件,演示Socket的使用。 Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例...

    JAVA上百实例源码以及开源项目

    Java Socket 聊天通信演示代码 2个目标文件,一个服务器,一个客户端。 Java Telnet客户端实例源码 一个目标文件,演示Socket的使用。 Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例...

    JAVA上百实例源码以及开源项目源代码

    Java Socket 聊天通信演示代码 2个目标文件,一个服务器,一个客户端。 Java Telnet客户端实例源码 一个目标文件,演示Socket的使用。 Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例...

    java聊天室1.3

    10.优化服务端和客户端,服务端可以开多个端口,取消其图形界面 11.控件台添加命令 s 端口号 打开端口 help 帮助信息 debug 是否显示调度信息 exit 退出 show 查看已打开的端口 12.MyChannel为服务端,客户端的连接 ...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,媒体网络,山寨QQ,Java聊天程序 Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,媒体网络,山寨QQ,Java聊天程序 Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证...

    万岳在线教育系统源码v1.1.4 ManyuehOnlineEducationSystem.rar

    聊天服务器:Socket 传输协议和媒体格式 推流 :RTMP 拉流 RTMP和HTTP 音频格式:ACC 视频格式:H.264 服务器配置 操作系统:linux CentOS 服务器,建议购买境内的服务器 三方服务 编解码:腾讯云直播SDK 存储:...

Global site tag (gtag.js) - Google Analytics