私は Java での Socket プログラミングは初めてで、以下のコードが間違っているかどうかを理解しようとしていました。私の質問は:
同じプログラム内のサーバー インスタンスに接続しようとする各スレッドに複数のクライアントを配置し、サーバーがクライアント間で分離してデータの読み取りと書き込みを行うことを期待できますか?」
public class Client extends Thread
{
...
void run()
{
Socket socket = new Socket("localhost", 1234);
doIO(socket);
}
}
public class Server extends Thread
{
...
void run()
{
// serverSocket on "localhost", 1234
Socket clientSock = serverSocket.accept();
executor.execute(new ClientWorker(clientSock));
}
}
現在のマシンの同じポートに接続しようとしている異なるスレッドに複数の Client インスタンスを配置できますか?
例えば、
Server s = new Server("localhost", 1234);
s.start();
Client[] c = new Client[10];
for (int i = 0; i < c.length; ++i)
{
c.start();
}