المشكلة تحدث بسبب كتابتك للأكواد الخاصة بإتصال الـclient في داخل الـloop وبعد ذلك لم تقم بإغلاق الإتصال من خلال close.
لحل المشكلة يرجى نقل الكود التالي في قسم الـclient إلى خارج الـwhile loop:
Socket s=new Socket(host,port);
PrintWriter output=new PrintWriter(s.getOutputStream());
BufferedReader insok = new BufferedReader(new InputStreamReader(s.getInputStream()));
ليكون الكود الكامل لقسم الـclient كالتالي:
public class TestClient{
public static void main(String args[]){
try{
String host=""+args[0];
int port=Integer.parseInt(args[1]);
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
String lettura=input.readLine();
Socket s=new Socket(host,port);
PrintWriter output=new PrintWriter(s.getOutputStream());
BufferedReader insok = new BufferedReader(new InputStreamReader(s.getInputStream()));
while(!lettura.equals("good")){
output.println(lettura);
output.flush();
String lettsock=insok.readLine();
System.out.println(lettsock);
lettura=input.readLine();
}
input.close();
}
catch(Exception ex){
System.out.println(ex);
System.exit(3);
}
}
}