-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathServerThread.java
More file actions
74 lines (65 loc) · 2.05 KB
/
ServerThread.java
File metadata and controls
74 lines (65 loc) · 2.05 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
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.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.sql.SQLException;
import dao.userDao;
public class ServerThread extends Thread {
private int count = 0;
private User user;
public static Thread thread;
public ServerThread(User user) {
this.user = user;
}
public void run() {
InputStream is = null;
InputStreamReader isr = null;
BufferedReader br = null;
OutputStream os = null;
OutputStreamWriter osr = null;
BufferedWriter bw = null;
try {
is = user.getSocket().getInputStream();
br = new BufferedReader(new InputStreamReader(is));
os = user.getSocket().getOutputStream();
bw = new BufferedWriter(new OutputStreamWriter(os));
for (String string = br.readLine(); string != null; string = br.readLine()) {
//问题出现在这,为什么用了花生壳之后读取流会抛出异常
if(string.equals("qwertyuiop[]asd")){
System.out.println(user.toString()+ "主动断开连接");
ServerFrame.jTextArea2.append(user.toString() + " 已经断开连接...\r\n");
ServerFrame.jTextArea2.selectAll();
try {
ServerFrame.ClientClose(user.getid(),user.toString()); //客户端断开后的操作
} catch (IOException | InterruptedException e) {
}
Server.sockets.remove(user.getSocket());
}
else{
ServerFrame.jTextArea2.append(string + "\r\n");
ServerFrame.jTextArea2.selectAll();
}
}
} catch (IOException e) // socket断开异常
{
try {
Server.sockets.remove(user.getSocket());
ServerFrame.ClientClose(user.getid(),user.toString()); //客户端断开后的操作
} catch (IOException | InterruptedException e1) {
}
userDao dao = new userDao();
try {
dao.updateNotOnlineflag(user.getUserport());
} catch (SQLException e1) {
}
ServerFrame.jTextArea2.append(user.toString() + " 已经断开连接...\r\n");
ServerFrame.jTextArea2.selectAll();
}
}
}