Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.DataOutputStream;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.net.ServerSocket;
- import java.net.Socket;
- import java.util.ArrayList;
- import java.util.List;
- public class TCPServer {
- private static Thread threadClients;
- private static Thread threadWriteToClients;
- private static Thread threadServerCommands;
- private static ServerSocket welcomeSocket;
- private static List<Socket> clientsArray = new ArrayList<Socket>();
- private static boolean go_on = true;
- private static String sentence;
- private static String serverCMD;
- private static BufferedReader inFromClient;
- private static Socket connectionSocket;
- private static DataOutputStream outToClient;
- public static void main(String argv[]) throws Exception
- {
- System.out.println("starting main");
- welcomeSocket = new ServerSocket(9876);
- System.out.println("Server socket klar");
- // Laver sockets til hver enkel Client (accepterer)
- threadClients = new Thread(new Runnable() {
- public void run() {
- while(go_on) {
- try {
- connectionSocket = welcomeSocket.accept();
- inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
- clientsArray.add(connectionSocket);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- });
- threadClients.start();
- // Traad til at skrive til samtlige clients
- threadWriteToClients = new Thread(new Runnable() {
- public void run() {
- while(go_on) {
- try {
- connectionSocket = welcomeSocket.accept();
- sentence = inFromClient.readLine();
- for (int i = 0; i < clientsArray.size(); i++) {
- outToClient = new DataOutputStream(clientsArray.get(i).getOutputStream());
- outToClient.writeBytes("FROM SOME CLIENT: " + sentence + "\n");
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- });
- threadWriteToClients.start();
- // SERVER kommandoer (gaar ogsaa ud til clients)
- threadServerCommands = new Thread(new Runnable() {
- public void run() {
- BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
- while(go_on) {
- try {
- serverCMD = inFromUser.readLine();
- for (int i = 0; i <= clientsArray.size(); i++) {
- outToClient = new DataOutputStream(clientsArray.get(i).getOutputStream());
- outToClient.writeBytes(serverCMD + "\n");
- }
- if (serverCMD.equals("quit")) {
- go_on = false;
- System.out.println("quitting the loop and closing the socket");
- connectionSocket.close();
- welcomeSocket.close();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- });
- threadServerCommands.start();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment