السلام عليكم
أنا أبرمج حاليا بريد إلكتروني وتواجهني مشكلة وهو أن الكلاينت الذي رأيته في التوتوريال ليس فيه أكثر من وظيفة يعني يدوبك يبعث كلمة إلى السرفر ويستقبل كلمة لكني احتاج أكثر من ذلك ففي نفس الكونكشن سيتم تبادل المعلومات بين السرفر والكلاينت أكثر من مرة
فهل لديكم مثال لكلاينت فيه أكثر من وظيفة يقوم بها؟
هذا ما توصلت إليه لعمل الوظائف لكنه لايعمل لأنه يغلق الستريم فيجب أن تفتح ستريم آخر
وهذا هو الكود من جانب السرفر
InputStream in=null;
OutputStream out=null;
BufferedReader bfr=null;
PrintWriter writer=null;
String recieve,userName,passWord;
boolean logged;
try{
in=s.getInputStream();
out=s.getOutputStream();
bfr=new BufferedReader(new InputStreamReader(in));
writer=new PrintWriter(out,true);
recieve=bfr.readLine();
logged= false;
if(recieve.equals("login")){
userName=bfr.readLine();
System.out.println(userName);
passWord=bfr.readLine();
System.out.println(passWord);
System.out.println("hashtable");
System.out.println(urs.users.toString());
if((urs.users.containsKey(userName)))
logged=true;
else writer.println("no");
}
if(recieve.equals("sign")){
userName=bfr.readLine();
passWord=bfr.readLine();
if(urs.users.containsKey(userName)==false){
urs.addRecord(userName, passWord);
System.out.print(urs.users.toString());
writer.println("approved");
}
else writer.println("taken");
}
if(recieve.equals("write")){
}
if(recieve.equals("read")){
}
if(recieve.equals("delete")){
}
if(recieve.equals("stop"))break;
System.out.println("here we are");
in.close();
out.close();
bfr.close();
writer.close();
}catch(IOException e){
System.out.println("server error");
}
}
}
public void run() {