Thứ Tư, 18 tháng 3, 2009

Project Dark Star - connecting server and client

Ở bài tut trước đã hướng dẫn cách để làm cho Server “chạy”. Mục tiêu tiếp theo sẽ là làm sao để Server nói chuyện với Client, phức tạp hơn là làm cho các Client nói chuyện với nhau thông qua Server. Bài tut này sẽ hướng dẫn cách làm cho Server & Client nói chuyện với nhau.


Cụ tỉ sẽ gồm các công việc sau:


- Start Server


- Login: Start Client & client login vào server, Server cho client login vào


- Echo : Client gửi cho Server 1 chuỗi bất kì, Server gửi trả cho Client đúng chuỗi đó



1. Start Server : xem bài tut trước hoặc bài này

2. Login:


- Tạo một project mới quản lý Client, ví dụ tên là PDSHelloClient.


o Add các file .jar trong \sgs-client-0.9.8\lib theo cách tương tự như đã làm với Server


o Tạo 1 package mới và copy file HelloUserClient.java trong \sgs-client-0.9.8\tutorial\src\com\sun\sgs\tutorial\client\lesson1 vào.


- Quay về project Server:


o Copy class HelloUserSessionListener ở \sgs-server-dist-0.9.8\tutorial\src\com\sun\sgs\tutorial\server\lesson5.


o Trong class của Server:


- Thêm khai báo logger:




/** The {@link Logger} for this class. */
private static final Logger logger =
Logger.getLogger(HelloWorld.class.getName());


- đổi phương thức loggedIn thành:


public ClientSessionListener loggedIn(ClientSession session) {


// User has logged in


logger.log(Level.INFO, "User {0} has logged in", session.getName());



// Return a valid listener


return new HelloUserSessionListener(session);


}


Để server cho phép Client login và log lại thông tin. Phương thức này sẽ trả về một instance của HelloUserSessionListener.



(Hoặc copy Class HelloEcho trong \sgs-server-dist-0.9.8\tutorial\src\com\sun\sgs\tutorial\server\lesson5 )

- Bây giờ Run lại Server & Run Client, xong nhiệm vụ 2


3. Echo:


- Phía Server:


o Copy class HelloEchoSessionListener từ \sgs-server-dist-0.9.8\tutorial\src\com\sun\sgs\tutorial\server\lesson5.


o Trong class của Server: đổi phương thức loggedIn thành:


public ClientSessionListener loggedIn(ClientSession session) {


// User has logged in


logger.log(Level.INFO, "User {0} has logged in", session.getName());



// Return a valid listener


return new HelloEchoSessionListener(session);


}


Khác biệt duy nhất ở đây so với phương thức loggedIn cũ là phương thức này trả về một instance của HelloEchoSessionListener


o Bây giờ Run Server đi.


- Phía Client: Run Client và type vào text box một string bất kì, sẽ nhận được phản hồi từ phía Server.


Xong. Bây giờ tìm cách để Client trò chuyện với Client đi :D.

1 nhận xét:

  1. lO4EUZ tnsdnsruykom, [url=http://rafcdtmopgkx.com/]rafcdtmopgkx[/url], [link=http://hdtkgiumidoc.com/]hdtkgiumidoc[/link], http://xtoghaqajrwl.com/

    Trả lờiXóa