欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入
65.//— CreateServerThread
66.class CreateServerThread extends Thread
67.{
68.private Socket client;
69.private BufferedReader in;
70.private PrintWriter out;
71.private String Username;
72.public CreateServerThread(Socket s) throws IOException
73.{
74.client = s;
75.in = new BufferedReader(new InputStreamReader(client.getInputStream()));
76.out = new PrintWriter(client.getOutputStream(), true);
77.out.println(“— Welcome to this chatroom —“);
78.out.println(“Input your nickname:”);
79.start();
80.}
81.public void sendMessage(String msg)
82.{
83.out.println(msg);
84.}
85.public void run()
86.{
87.try
88.{
89.int flag = 0;
90.Thread_Counter++;
91.String line = in.readLine();
92.while (!line.equals(“bye”))
93.{
94.if (line.equals(“l”))
95.{
96.out.println(listOnlineUsers());
97.line = in.readLine();
98.continue;
99.}
100.if (flag++ == 0)
101.{
102.Username = line;
103.User_List.add(Username);
104.out.println(listOnlineUsers());
105.Threader.add(this);
106.pushMessage(“[< ” + Username + ” come on in >]”);
107.}
108.else
109.{
110.pushMessage(“<” + Username + “>” + line);
111.}
112.line = in.readLine();
113.}
114.out.println(“— See you, bye! —“);
115.client.close();
116.}
117.catch (IOException e)
118.{}
119.finally
120.{
121.try
122.{
123.client.close();
124.}
125.catch (IOException e)
126.{}
127.Thread_Counter–;
128.Threader.remove(this);
129.User_List.remove(Username);
130.pushMessage(“[< ” + Username + ” left>]”);
131.}
132.}
133.private String listOnlineUsers()
134.{
135.String s =”-+- Online list -+-1512″;
136.for (int i = 0; i < User_List.size(); i++)
137.{
138.s += “[” + User_List.get(i) + “]1512”;
139.}
140.s += “-+———————+-“;
141.return s;
142.}
143.private void pushMessage(String msg)
144.{
145.Message_Array.addLast(msg);
146.isClear = false;
147.}
148.}
149.}
以上就是对Java Socket线程的详细介绍。这就是程序运行后,多用户登陆并且输入信息后的屏幕。实现了信息的实时广播。用户输入”l”就可以列出在线人员表。
[1][2]
摘抄美文4、承诺是一件美好的事情,但美好的东西往往不会变为现实。