Java MultiClient Server and Client Sending Issues
So I don't understand whats wrong. I'm trying to get a server that can send data to multiple clients. Data would be WhoSend+Data.
Server:
Code:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
/**
* @param args
* @throws IOException
*/
static Socket incomingConnection=null;
static ServerSocket ss;
static int port = 25000;
static int numberOFClients=0;
static BufferedReader br;
static BufferedWriter bw;
static String msg;
public static void main(String[] args) throws IOException {
ss = new ServerSocket(port);
System.out.println("Server Started and listening to the port "+port);
while(true){
incomingConnection = ss.accept();
Thread clientThread = new Thread(new ConnectionHandler(incomingConnection));
clientThread.start();
System.out.println(incomingConnection.getInetAddress()+" just connected.");
}
}
}
ConnectionHandler:
Code:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.util.Scanner;
public class ConnectionHandler implements Runnable {
Socket connectiontoClient;
BufferedReader br;
BufferedWriter bw;
public ConnectionHandler(Socket incomingConnection) throws IOException {
this.connectiontoClient = incomingConnection;
br = new BufferedReader(new InputStreamReader(connectiontoClient.getInputStream()));
bw = new BufferedWriter(new OutputStreamWriter(connectiontoClient.getOutputStream()));
}
public void run(){
try {
//Thread writeSocket = new Thread(new writeSocket(connectiontoClient));
Thread readSocket = new Thread(new readSocket(connectiontoClient));
} catch (IOException e) {
e.printStackTrace();
}
}
}
readSocket:
Code:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
public class readSocket implements Runnable {
Socket connectiontoClient;
BufferedReader br;
String incomingMsg;
public readSocket(Socket connectiontoClient) throws IOException {
this.connectiontoClient = connectiontoClient;
br = new BufferedReader(new InputStreamReader(connectiontoClient.getInputStream()));
}
public void run() {
try {
while((incomingMsg=br.readLine())!=null){
System.out.println(incomingMsg);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Client:
Code:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Scanner;
import javax.swing.JOptionPane;
public class Client {
static String host;
static int port;
static InetAddress address;
static Socket socket;
static OutputStream os;
static OutputStreamWriter osw;
static BufferedWriter bw;
static String sendMessage;
static BufferedReader br;
static String receivedMessage;
static Scanner scan;
public static void main(String[] args) throws IOException {
host = "127.0.0.1";
port = 25000;
address = InetAddress.getByName(host);
socket = new Socket(address, port);
scan = new Scanner(System.in);
bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
scan = new Scanner(System.in);
while(true){
sendMessage = scan.nextLine();
bw.flush();
bw.write(sendMessage);
bw.flush();
}
}
}