2017-10-17 4 views
-1

J'utilise plusieurs ports et un serveur multi-thread lorsque j'envoie un fichier du client au serveur comme le code ci-dessous ou du serveur au client. Mais je ne peux pas envoyer de données en même temps pour un port différent. Je pense que je dois utiliser la programmation parallèle si vous avez une suggestion de solution ou pouvez-vous me donner la source ou la suggestion de site internet pour ce sujet.Serveur multi-threads Plusieurs ports Envoyer un fichier au même moment

côté serveur

SendFiletoClient(DataSocket1, "test1.txt"); 
SendFiletoClient(DataSocket2, "test2.txt"); 
SendFiletoClient(DataSocket3, "test3.txt"); 
SendFiletoClient(DataSocket4, "test4.txt"); 

côté client

addFileToClient(Socket1, "test1.txt"); 
addFileToClient(Socket2, "test2.txt"); 
addFileToClient(Socket3, "test3.txt"); 
addFileToClient(Socket4, "test4.txt"); 
+0

"Je sais que je dois utiliser un port serilazable", hein? Qu'est-ce qu'un "port serilazable"? – Kayaman

Répondre

1

Le modèle pour les serveurs multithread est quelque chose pseudo codé comme:

//server side 
while (true) { 
    accept a connection; 
    create a thread to deal with the client; 
} 

Ou de façon plus constructive:

while(this.isRunning) { 
    Socket clientSocket = null; 
    try { 
     clientSocket = this.serverSocket.accept(); 
    } catch (IOException e) { 
     //handle exception on accept client socket 
    } 
    if(clientSocket != null) { 
     Thread workerThread = new Thread(
      new YourWorkerRunnable(clientSocket /*, remain arguments */)); 
     workerThread.start(); 
    } 
} 

Les variantes de ce modèle incluent un pool de workerThreads pour améliorer la gestion de l'allocation des ressources côté serveur.

Veuillez vous reporter à to this link pour en savoir plus sur les connecteurs de serveur de codage.