Danh mục

Luận văn: Lập trình phân tán trên Java

Số trang: 17      Loại file: pdf      Dung lượng: 467.59 KB      Lượt xem: 15      Lượt tải: 0    
tailieu_vip

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Lý do chọn đề tài Cờ caro là một trò chơi nhỏ hấp dẫn và không thiếu phần sáng tạo, chắc hẳn ai cũng từng trải nghiệm qua trò chơi nhỏ này trong những lúc xả stress cùng bạn bè. Nhưng trong cuộc sống hiện đại ngày nay chúng ta không thể trực tiếp ngồi chơi cờ cùng nhau. Vì thế, chơi cờ caro online qua mạng đã ra đời phục vụ nhu cầu đó. 2. Yêu cầu 2.1. Server:
Nội dung trích xuất từ tài liệu:
Luận văn: Lập trình phân tán trên Java Luận văn Lập trình phân tán trên Java GIỚI THIỆU 1. Lý do chọn đề tài Cờ caro là một trò chơi nhỏ hấp dẫn và không thiếu phần sáng tạo, chắc hẳn ai cũng từng trải nghiệm qua trò chơi nhỏ này trong những lúc xả stress cùng bạn bè. Nhưng trong cuộc sống hiện đại ngày nay chúng ta không thể trực tiếp ngồi chơi cờ cùng nhau. Vì thế, chơi cờ caro online qua mạng đã ra đời phục vụ nhu cầu đó. 2. Yêu cầu 2.1. Server: Lắng nghe. • • Phục vụ yêu cầu của Client. Xử lý nước đi của các Client để gửi kết quả thắng thua trong bàn cờ • cho các Client trong bàn cờ. Client: 2.2. • Kết nối Server. Gửi yêu cầu cho Server phục vụ: mời chơi, chấp nhận lời mời, nước • đi, chơi lại. 3. Một số kỹ thuật liên quan Sử dụng mô hình mạng Client/Server, giao thức TCP/IP. • Cổng kết nối 9000. • • Sử dụng Socket và kỹ thuật multithread trong Java, và một số tính năng khác. Lựa chọn ngôn ngữ: Java. (Java được xem là một ngôn ngữ lập trình • ứng dụng cho mạng vì những đặc tính riêng biệt của chúng như đa hệ nền, đa luồng, bảo mật, hướng đối tượng, phân tán, ứng dụng web…). 4. Nội dung 4.1 . Server Giao diện Server có các chức năng sau: 4.1.1.  Start Server.  Listbox danh sách những người đang online.  Listbox cập nhật các player đang chơi.  Text Area lưu thông tin kết nối đến Server của các player. 4.1.2. Các giao thức liên lạc giữa Server và Client Connect: liên lạc connect giữa client và server. Khi client đăng  nhập thì nó sẽ gửi một chuỗi: “Connect:username”. Cổng mặc định nhận giao thức giữa Server và Client là cổng 9000.  Disconnect : client gửi tín hiệu ngắt kết nối, Server gửi đi tính  hiệu khi có client ngắt kết nối cho toàn thể client: “Disconnect:username”. CallPlay: client gửi tính hiệu mời một client khác chơi cờ:  “CallPlay:username_của_người_mời:username_của_đối_thủ”. Yes: client( đối thủ) đồng ý chơi, client gửi lên:  “Yes:username_người_yes:username_người mời mình”. KieuConDi: khi nhận được tín hiệu đồng ý chời, server gửi kiểu  con đi quy định cho trước (X or O). “KieuConDi:username1:X:username2:O” (username1 đi X, username2 đi O). Play: client gửi nước đi của mình lên server:  “Play:username_của_mình:: username_của_đối_thủ”. Played: server nhận được tín hiệu client gửi nước đi, server gửi về  client trở lại: “Played:username1::username2”. RePlay: client gửi tín hiệu chơi lại lên server cho đối thủ kia biết  là mình muốn chơi lại: “RePlay:username_của_mình:username_đối_thủ”. WIN: server gửi tín hiệu người thắng cuộc.  “WIN:username_thăng::username_thua”. Lose: xử thua cho một client nào đó: “Lose:username”.  ReConnect: client gửi tín hiệu connect lại để chơi với người khác,  khi không muốn chơi với người A nữa: “ReConnect:username_của_mình”. 4.1.3. Class chính trong chương trình phía Server: Server.java a. RefreshListUserPlaying Cập nhật danh sách những người đang chơi game. while(userPlaying != null){ String display = ; for(String s:userPlaying){ if(display.equals()){ display = s; } else{ display = display + : + s; } } String []sql = display.split(:); jListPlaying.setListData(sql); } b. refreshListUser Cập nhật danh sách những người đang online. while(userOnline != null){ String display = ; for(String s:userOnline){ if(display.equals()){ display = s; } else{ display = display + : + s; } } String []sql = display.split(:); jListConnected.setListData(sql); } c. processRequest Tạo kết nối Client với Server thông qua lớp Connection.java try{ communitySocket = serverSocket.accept(); handleConnection(communitySocket); System.out.println(So luong ket noi: + listCon.size() + \n + so luong user online: + userOnline.size()); }catch(Exception e){ e.printStackTrace(); } d. Các Function chính addUser(String UserID, Connection con): thêm một user mới  vào list user online tương ứng với một connection. addUserFree(String uid): thêm một user chưa chọn được bạn  chơi game. addUserPlay(String userid) : thêm một user vào danh sách  những người đã có bạn chơi (đang chơi). closeConnection(Connection con, String uid): đóng kết nối  tương ứng với user đã đăng ký (khi nhận tín hiệu disconnect từ client gửi về). listCon.remove(con); userOnline.remove(uid); userIDToConnect.remove(uid); if(userPlaying != null && userPlaying.size() > 0 && userPlaying.contains(uid)) userPlaying.remove(uid); if(userFree != null && userFree.size() > 0 && userFree.contains(uid)) userFree.remove(uid); removeUserPlay(String user): xóa những user đã chọn được  bạn chơi trong danh sách người chời chư ...

Tài liệu được xem nhiều: