多线程问题!

Aanman 2017-03-15 01:04:20
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);
// 出错,打印出错信息

}

}
}

}
...全文
81 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Aanman 2017-03-15
  • 打赏
  • 举报
回复
报错:Address already in use: JVM_Bind 我猜测是又运行while(true) 4700端口被占用所以会 报错, 如果使用局部变量赋值: // List<String> ms = new ArrayList<String>(); // ms.add("sssssssssss"); // ms.add("bbbbbbbbbbb"); // JieShou.setMessageList(ms); 就不会出现报错。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧