serverthread.java
来自「一个用于WEB方式的文本交谈.即N对N方式交谈」· Java 代码 · 共 62 行
JAVA
62 行
package cn.com.sihitech.cc.chat;
import java.io.*;
import java.net.*;
import java.util.*;
import java.text.SimpleDateFormat;
public class ServerThread extends Thread {
private Server server = null;
private Socket socket = null;
//MsgContent theMsgContent = new MsgContent();
//MsgContent theMsgContent = new MsgContent();
public ServerThread(Socket socket, Server server) {
super("ServerThread"); //服务器一直执行同一线程
this.socket = socket;
this.server = server;
}
public void run() {
try {
Calendar cal = Calendar.getInstance();
SimpleDateFormat formatter = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss");
String FileFormat = formatter.format(cal.getTime());
DataInputStream addResult;
addResult = new DataInputStream(
new BufferedInputStream(socket.getInputStream())); //读取发送信息的客户端的输入流
byte buffer[] = new byte[1024];
int byteCount = 0;
String result = "";
while ((byteCount = addResult.read(buffer, 0, 1024)) != -1) { //把输入流中有信息则读取到字节缓冲区
result = new String(buffer, 0, byteCount); //把字节转换成GBK编码的字符串
System.out.println("服务器接收信息....." + result);
server.send("000000"); //向客户端发送
if (MsgContent.list == null)
MsgContent.list = new ArrayList();
MsgContent.list.add(result);
}
try {
Thread.sleep(500);
} catch (InterruptedException ex1) {
}
} catch (IOException ex) {
System.out.println("SeverThread no data");
} finally {
Close(); //断开发送信息的客户端socket
}
}
/**
* 关闭socket
*/
private void Close() {
try {
server.removeClient(socket);
socket.close();
} catch (Exception ex) {
System.out.println("ServerThread removeClient:" + ex);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?