Chata Em Java
Pesquisas Acadêmicas: Chata Em Java. Pesquise 862.000+ trabalhos acadêmicosPor: samolange • 12/11/2014 • 3.477 Palavras (14 Páginas) • 288 Visualizações
1. package chat;
2.
3. import java.io.BufferedReader;
4. import java.io.IOException;
5. import java.io.InputStreamReader;
6. import java.io.PrintStream;
7. import java.net.ServerSocket;
8. import java.net.Socket;
9. import java.util.ArrayList;
10. import java.util.Enumeration;
11. import java.util.List;
12. import java.util.Vector;
13.
14. public class ServidorSocket extends Thread {
15.
16. // Parte que controla as conexões por meio de threads.
17. private static Vector CLIENTES;
18.
19. // socket deste cliente
20. private Socket conexao;
21.
22. // nome deste cliente
23. private String nomeCliente;
24. // lista que armazena nome de CLIENTES
25. private static List LISTA_DE_NOMES = new ArrayList();
26.
27. // construtor que recebe o socket deste cliente
28. public ServidorSocket(Socket socket) {
29. this.conexao = socket;
30. }
31.
32. // testa se nomes são iguais, se for retorna true
33. public boolean armazena(String newName) {
34.
35. // System.out.println(LISTA_DE_NOMES);
36. for (int i = 0; i < LISTA_DE_NOMES.size(); i++) {
37. if (LISTA_DE_NOMES.get(i).equals(newName))
38. return true;
39. }
40.
41. // adiciona na lista apenas se não existir
42. LISTA_DE_NOMES.add(newName);
43. return false;
44. }
45.
46. // remove da lista os CLIENTES que já deixaram o chat
47. public void remove(String oldName) {
48. for (int i = 0; i < LISTA_DE_NOMES.size(); i++) {
49. if (LISTA_DE_NOMES.get(i).equals(oldName))
50. LISTA_DE_NOMES.remove(oldName);
51. }
52. }
53.
54. public static void main(String args[]) {
55.
56. // instancia o vetor de CLIENTES conectados
57. CLIENTES = new Vector();
58. try {
59.
60. // cria um socket que fica escutando a porta 5555.
61. ServerSocket server = new ServerSocket(1500);
62. System.out.println("ServidorSocket rodando na porta 5555");
63.
64. // Loop principal.
65. while (true) {
66.
67. // aguarda algum cliente se conectar.
68. // A execução do servidor fica bloqueada na chamada do método
69. // accept da
70. // classe ServerSocket até que algum cliente se conecte ao
71. // servidor.
72. // O próprio método desbloqueia e retorna com um objeto da
73. // classe Socket
74. Socket conexao = server.accept();
75.
76. // cria uma nova thread para tratar essa conexão
77. Thread t = new ServidorSocket(conexao);
78. t.start();
79. // voltando ao loop, esperando mais alguém se conectar.
80. }
81. } catch (IOException e) {
82.
83. // caso ocorra alguma excessão de E/S, mostre qual foi.
84. System.out.println("IOException: " + e);
85. }
86. }
87.
88. // execução da thread
89. public void run() {
90. try {
91.
92. // objetos que permitem controlar fluxo de comunicação que vem do
93. // cliente
94. BufferedReader entrada = new BufferedReader(newInputStreamReader(
...