Как подключить несколько клиентов к одному серверу, как я понимаю на каждый порт возможно подключение только одного клиента. Помогите сформировать правильный код, который дает возможность подключиться нескольким клиентам одновременно.
Представляю я его так: Клиент подсоединяется к главному порту, например 80, сервер какбе регистрирует его отсылая, сгенерированный им, уникальный порт. А потом раскидывает какие-то данные по всем портам, к которым подключены клиенты (думаю тут это делает цикл “for”). Вот сервер на данный момент у меня выглядит так:
import java.io.*;
import java.net.*;
class Server
{
private static Server server;
ServerSocket socket;
Socket incoming;
BufferedReader readerIn;
PrintStream printOut;
public static void main(String[] args)
{
int port = 80;
try
{
port = Integer.parseInt(args[0]);
}
catch (ArrayIndexOutOfBoundsException e)
{
}
server = new Server(port);
}
private Server(int port)
{
System.out.println("Whait connect...");
try
{
socket = new ServerSocket(port);
incoming = socket.accept();
System.out.println("In server connected! \n");
readerIn = new BufferedReader(new InputStreamReader(incoming.getInputStream()));
printOut = new PrintStream(incoming.getOutputStream());
boolean done = false;
while (!done)
{
String str = readerIn.readLine();
if (str == null)
{
done = true;
}
else
{
out("Client: " + str);
if(str.trim().equals("EXIT"))
{
done = true;
}
}
//incoming.close();
}
}
catch (Exception e)
{
System.out.println(e);
}
}
private void out(String str)
{
System.out.println(str);
printOut.println("I registration you \n");
System.out.println("You say: I registration you \n");
}
}
import java.net.*;
class Server
{
private static Server server;
ServerSocket socket;
Socket incoming;
BufferedReader readerIn;
PrintStream printOut;
public static void main(String[] args)
{
int port = 80;
try
{
port = Integer.parseInt(args[0]);
}
catch (ArrayIndexOutOfBoundsException e)
{
}
server = new Server(port);
}
private Server(int port)
{
System.out.println("Whait connect...");
try
{
socket = new ServerSocket(port);
incoming = socket.accept();
System.out.println("In server connected! \n");
readerIn = new BufferedReader(new InputStreamReader(incoming.getInputStream()));
printOut = new PrintStream(incoming.getOutputStream());
boolean done = false;
while (!done)
{
String str = readerIn.readLine();
if (str == null)
{
done = true;
}
else
{
out("Client: " + str);
if(str.trim().equals("EXIT"))
{
done = true;
}
}
//incoming.close();
}
}
catch (Exception e)
{
System.out.println(e);
}
}
private void out(String str)
{
System.out.println(str);
printOut.println("I registration you \n");
System.out.println("You say: I registration you \n");
}
}
394-294 – кто хочет помочь мне в режиме онлайн – пишите.
31 марта 2010 в 21:02
один клиент 2 коннетка
31 марта 2010 в 20:02
Сервер по определению должен быть многонитиевым