0
Hello I’m doing a job for college and I’m doubtful how to add a new thread to add another client...
basically what I want to do is after started the server is possible to send message from more than one client, and distinct
the system is a proof of concept of an auction system
follows what was developed up to the moment
import java.net.*;
import java.io.*;
import java.util.Scanner;
public class CliThread extends Thread {
static DataOutputStream outStream = null;
DataInputStream inStream = null;
static String host = "";
static int port = 9090;
Socket socket = null;
String MRcv= "";
static String MSnd = "";
CliThread(){
try {
socket = new Socket("localhost", port);//conecta com o servidor.
System.out.println("Conectado ao servidor...");
this.start();//comeca uma nova thread. O metodo run é executado.
outStream = new DataOutputStream(socket.getOutputStream());
inStream = new DataInputStream(socket.getInputStream());
Scanner sc = new Scanner(System.in);
while(true){
System.out.println("Digite o seu lance para o produto: ");
String MSnd = sc.nextLine();//le mensagem do console.
outStream.writeUTF(MSnd);//manda mensagem para o servidor.
outStream.flush();
}
} catch(Exception e) {System.out.println(e);}
}
public void run(){
while (true) {
try {
MRcv = inStream.readUTF();//le mensagem do servidor.
System.out.println("Servidor: " + MRcv);
} catch(Exception e) {}
}
}
public static void main(String args[]){
new CliThread();
}
}
server
import java.net.*;
import java.io.*;
import java.util.Scanner;
class SrvThread extends Thread {
static int port = 9090;
static DataOutputStream outStrem = null;
static String MSnd= ""; //used in client
Socket socket = null;
ServerSocket serverSocket = null;
DataInputStream inStrem = null;
String MRcv= "";
SrvThread(){ //init
try {
serverSocket = new ServerSocket(port);
System.out.println("Aguardando conexão com o cliente...");
socket = serverSocket.accept();//aguarda conexao com o cliente.
System.out.println("Conexão Estabelecida.");
outStrem = new DataOutputStream(socket.getOutputStream());
inStrem = new DataInputStream(socket.getInputStream());
this.start();//inicia uma nova thread. O metodo run é executado.
Scanner sc = new Scanner(System.in);
while(true){
System.out.println("Server Send: ");
String MSnd = sc.nextLine(); //le string do console
outStrem.writeUTF(MSnd);//envia string para o cliente.
outStrem.flush();
}
} catch(Exception e){
System.out.println(e);
}
}
public void run(){
try {
while(true){
MRcv = inStrem.readUTF();//le as strings do cliente
System.out.println("Comprador1: "+MRcv);
}
} catch(Exception e) {
System.out.println(e);
}
}
public static void main(String args[]){
new SrvThread();
}
}