-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathServer.java
More file actions
122 lines (107 loc) · 3.21 KB
/
Server.java
File metadata and controls
122 lines (107 loc) · 3.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package Server;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectOutputStream;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Vector;
public class Server implements Runnable{
private String ip = "";
private int port = 0;
private String welcome;
private boolean isadd = false;
private String username = "";
private int userport = 0;
private int UserID;
private User user;
private Socket socket = null;
public static ArrayList<Socket> sockets =new ArrayList<Socket>();
private ServerSocket serverSocket = null;
public Server(){
ip = "localhost";
port = 8888;
welcome = "*************服务器即将启动,等待客户端的连接*************\r\n\r\n";
}
public void run(){
try {
InetAddress inetAddress = InetAddress.getByName(ip);
serverSocket = new ServerSocket(port);
} catch (IOException e) {
}
while(true){
try {
socket = serverSocket.accept();
InputStream input = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(input));
String[] userMessage = br.readLine().split(",");
username = userMessage[0];
userport = Integer.parseInt(userMessage[1]);
System.out.println(username + " 已经上线,用户的监听的端口号是: " + userport); //username
ServerFrame.jTextArea2.append(username + " 已上线..." + username+" 监听的端口号是:" + userport + "\r\n");
ServerFrame.jTextArea2.selectAll();
ServerFrame.count++;
user = new User(username,userport,ServerFrame.count,socket);
ServerFrame.vt.add(user);
ServerFrame.vt1.add(user.toString());
User2 user2 = new User2(username,userport,ServerFrame.count);
ServerFrame.vtt.add(user2);
ServerFrame.vtt1.add(user2.toString());
isadd = true;
sockets.add(socket);
for(int i = 0;i<sockets.size();i++) //告知所有用户要刷新好友列表了
{
System.out.println("asdasd");
BufferedWriter bw = new BufferedWriter(
new OutputStreamWriter(sockets.get(i).getOutputStream()));
bw.write("qwertyuiop[]\r\n");// 好友刷新信号
bw.write(username + "\r\n");
bw.flush();
Thread.sleep(100);
ObjectOutputStream op = new ObjectOutputStream(sockets.get(i).getOutputStream());
op.writeObject(ServerFrame.vtt);
op.writeObject(ServerFrame.vtt1);
op.flush();
}
} catch (IOException e) {
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ServerThread thread = new ServerThread(user);
thread.start();
}
}
public String getwelcome(){
return welcome;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
public boolean getIsadd() {
return isadd;
}
public void setIsadd(boolean isadd) {
this.isadd = isadd;
}
public ServerSocket getServerSocket() {
return serverSocket;
}
public void setServerSocket(ServerSocket serverSocket) {
this.serverSocket = serverSocket;
}
}