ورود

View Full Version : Server Client



po0ya_jo0n
دوشنبه 17 اسفند 1388, 13:02 عصر
یه برنامه سرور و کلاینت نوشتم و هر پیغامی که کلاینت تایپ میکنه، سرور دریافت میکنه و روی صفحه Cmd نشون میده

ولی

میخام سرور به محض دریافت یک کلمه خاص ، به جای پرینت، یه عکس العمل دیگه ای رو نشون بده


سورس سرور :


import java.net.*;
import java.io.*;

class Server{
public static void main(String args[]) throws Exception{
System.out.println("Server Ready ...");

ServerSocket ssk=new ServerSocket(1234);
Socket sk=ssk.accept();
BufferedReader in=new BufferedReader(new InputStreamReader(sk.getInputStream()));
PrintStream out=new PrintStream(sk.getOutputStream());

String res=in.readLine();

if (res.trim() == "s"){
System.out.println(" received :'"+res+"'*");
}
else if (res.trim() != "s")
System.out.println(" Your Order Error!");
}
}



و سورس کلاینت :




import java.net.*;
import java.io.*;

class Client{
public static void main(String args[]) throws Exception{

Socket sk=new Socket("127.0.0.1",1234);
BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
BufferedReader in=new BufferedReader(new InputStreamReader(sk.getInputStream()));
PrintStream out=new PrintStream(sk.getOutputStream());
System.out.println("Client Ready ...");

while(true){
System.out.print("Typing your Word: ");
out.println(bf.readLine());
out.flush();
System.out.println(" Sent"+"\n");
out.close();
}
}
}




ممنونم

java_nith
سه شنبه 18 اسفند 1388, 04:22 صبح
سرور باید ببینه که کاربر چی‌ نوشته
و از طریقه equals هی‌ برابری کنی‌، و بهش بگی‌ که اگه این برابری شد چه کاری انجام بعده

مثلا


Calendar c = Calendar.getInstance();
String message = in.nextLine();
if(message.equals("time")){
out.writeObject(c.getTime().toString());
}

po0ya_jo0n
سه شنبه 18 اسفند 1388, 06:55 صبح
آقا دستت درد نکنه

لطف کردی

لامصب جاوا خیلی سخته

ولی عشقه

po0ya_jo0n
سه شنبه 18 اسفند 1388, 11:45 صبح
من یه کم توی جاوا مبتدی هستم

این سورس رو:



Calendar c = Calendar.getInstance();
String message = in.nextLine();
if(message.equals("time")){
out.writeObject(c.getTime().toString());
}


چه روی کدوم قسمت کد سرور بیارم؟

کد سرور:



import java.net.*;

import java.io.*;



class Server{

public static void main(String args[]) throws Exception{

System.out.println("Server Ready ...");



ServerSocket ssk=new ServerSocket(1234);

Socket sk=ssk.accept();

BufferedReader in=new BufferedReader(new InputStreamReader(sk.getInputStream()));

PrintStream out=new PrintStream(sk.getOutputStream());



String res=in.readLine();



if (res.trim() == "s"){

System.out.println(" received :'"+res+"'*");

}

else if (res.trim() != "s")

System.out.println(" Your Order Error!");

}

}



و توی کد کلاینتم چیزی کم و زیاد نکنم ؟

سورس کلاینتم تو پست 1 هست

jlover
شنبه 22 اسفند 1388, 17:45 عصر
من کدهاتون رو خوندم
به غیر از ایرادی که دوست دیگه مون نشون دادند ( و ارتباطی به بحث مشتری/خدمتگزار نداره )،اشکالاتی مهمی هم در طراحی داره :
مثلن کلاس Server هست که باید از حلقه ی بینهایت استفاده کنه ، و باید هم قبل از کلاس Client اجرا بشه
قرار دادن کلاس Client در یک حلقه ی بینهایت ، اون هم به این صورت ، یعنی برقرار نگه داشتن یک ارتباط دائم با Server و گرفتن شانس برقراری ارتباط با خدمتگزار ، از دیگر مشتریهاست

ازتون دعوت میکنم سری به این پست بزنید :

http://barnamenevis.org/forum/showpost.php?p=931832&postcount=3