多线程问题!
package com.msg;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.List;
public class JieShou implements Runnable {
private static List<String> MessageList;
private static JieShou instance;
JieShou() {
}
public static synchronized JieShou getInstance() {
if (instance == null) {
instance = new JieShou();
}
return instance;
}
public synchronized List<String> getMessageList() {
return MessageList;
}
public synchronized void setMessageList(List<String> messageList) {
MessageList = messageList;
}
public synchronized void AddMessage(String message) {
MessageList.add(message);
}
@Override
public synchronized void run() {
while (true) {
ServerSocket server = null;
try {
server = new ServerSocket(4700);
// 创建一个ServerSocket在端口4700监听客户请求
} catch (Exception e) {
System.out.println("can not listen to:" + e);
// 出错,打印出错信息
}
Socket socket = null;
try {
socket = server.accept();
BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));
String s = is.readLine();
System.out.println("信息来源ip:" + socket.getInetAddress());
String message = "";
while (s != null) {
message += s;
s = is.readLine();
}
System.out.println(message);
if (message != null && message != "") {
AddMessage(message);// 修改值添加这句话就有问题!!
// List<String> ms = new ArrayList<String>();
// ms.add("sssssssssss");
// ms.add("bbbbbbbbbbb");
// JieShou.setMessageList(ms);
BickerTray.setMessageList(getMessageList());
BickerTray.setFlag(true);
}
is.close();
socket.close();
server.close();
} catch (Exception e) {
System.out.println("Error." + e);
// 出错,打印出错信息
}
}
}
}