Bài giảng môn lập trình mạng chương 3 TS nguyễn văn hiệp

55 180 0
Bài giảng môn lập trình mạng  chương 3   TS  nguyễn văn hiệp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

MƠN LẬP TRÌNH MẠNG Chương Viết hệ thống MiniChatter Java & dùng kỹ thuật multi-thread 3.1 Xây dựng module MiniChatter Client 3.2 Xây dựng module MiniChatter Server Bộ môn : Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Mơn : Lập trình Mạng Chương : Viết hệ thống MiniChatter Java & dùng kỹ thuật multi-thread Slide 76 3.1 Xây dựng module client MiniChatter Chúng ta thiết kế giao diện cho Form ứng dụng MiniChatClient sau : Cửa sổ phục vụ lệnh Connect : Cửa sổ phục vụ lệnh Login : Bộ môn : Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình Mạng Chương : Viết hệ thống MiniChatter Java & dùng kỹ thuật multi-thread Slide 77 Xây dựng module client MiniChatter Chạy JBuilder từ Windows Màn hình JBuilder ₫ược hiển thị sau : Bộ môn : Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình Mạng Chương : Viết hệ thống MiniChatter Java & dùng kỹ thuật multi-thread Slide 78 Xây dựng module client MiniChatter Chọn menu File.Close Projects ₫ể hiển thị cửa sổ "Close Projects", chọn button "All" Ok ₫ể ₫óng Project ₫ang mở : Bộ mơn : Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Mơn : Lập trình Mạng Chương : Viết hệ thống MiniChatter Java & dùng kỹ thuật multi-thread Slide 79 Xây dựng module client MiniChatter Chọn menu File.New Project ₫ể tạo Project quản lý ứng dụng MiniChatClient : Bộ môn : Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Mơn : Lập trình Mạng Chương : Viết hệ thống MiniChatter Java & dùng kỹ thuật multi-thread Slide 80 Xây dựng module client MiniChatter Nhập tên Project, chọn thư mục chứa Project, chọn Template qui ₫ịnh cấu hình ban ₫ầu cho Project (nên ₫ể mặc ₫ịnh), ấn button Next : Bộ môn : Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Mơn : Lập trình Mạng Chương : Viết hệ thống MiniChatter Java & dùng kỹ thuật multi-thread Slide 81 Xây dựng module client MiniChatter Chọn version JDK, chọn thư mục chứa file Output, Backup, chọn thư mục Working (nên ₫ể mặc ₫ịnh), ấn button Next : Bộ môn : Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Mơn : Lập trình Mạng Chương : Viết hệ thống MiniChatter Java & dùng kỹ thuật multi-thread Slide 82 Xây dựng module client MiniChatter Chọn cách mã hóa chuỗi UTF-8, nhập Title vá thông tin khác ứng dụng, muốn, ấn nutton Finish : Bộ môn : Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Mơn : Lập trình Mạng Chương : Viết hệ thống MiniChatter Java & dùng kỹ thuật multi-thread Slide 83 Xây dựng module client MiniChatter Chọn menu File.New , cửa sổ Object Gallery hiển thị, chọn icon "Application" ₫ể tạo ứng dụng Project : Bộ môn : Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình Mạng Chương : Viết hệ thống MiniChatter Java & dùng kỹ thuật multi-thread Slide 84 Xây dựng module client MiniChatter Nhập tên ứng dụng, chọn Package chứa ứng dụng (nên ₫ể mặc ₫ịnh) ấn button Next : Bộ môn : Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Mơn : Lập trình Mạng Chương : Viết hệ thống MiniChatter Java & dùng kỹ thuật multi-thread Slide 85 Xây dựng module Server MiniChatter // code file MiniChatServerDlg package jbminichatclient; import java.awt.*; import java.awt.event.*; import javax.swing.*; import com.borland.jbcl.layout.*; import java.util.*; import java.net.*; import java.io.*; import java.sql.*; public class MiniChatServerDlg extends JFrame implements MessageListener { //các thuộc tính cần dùng cho Server int m_groupcnt; // số nhóm T_UserRec m_sock_no_user=null; // danh sách user chưa login T_GroupList m_grouplist[] = new T_GroupList[10]; // danh sách nhóm String uname; // tên user ServerSocket serverSocket; // socket mà server dùng ₫ể accept final int SERVER_PORT = 256; // port lắng nghe server //các thuộc tính cần dùng cho Server JPanel contentPane; Bộ môn : Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình Mạng Chương : Viết hệ thống MiniChatter Java & dùng kỹ thuật multi-thread Slide 116 Xây dựng module Server MiniChatter //Constructor frame public MiniChatServerDlg() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } // thiết lập kích thước form this.setSize(new Dimension(490, 445)); // tạo model chứa nội dung listbox DefaultListModel model = new DefaultListModel(); jlbGroups.setModel((ListModel)model); model =new DefaultListModel(); jlbUsers.setModel((ListModel)model); model =new DefaultListModel(); jlbContent.setModel((ListModel)model); // truy xuất danh sách nhóm từ database hiển thị lên listbox Groups ReadDisplayGroups(); Bộ môn : Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình Mạng Chương : Viết hệ thống MiniChatter Java & dùng kỹ thuật multi-thread Slide 117 Xây dựng module Server MiniChatter // tao sersersocket lắng nghe cho server try { serverSocket = new ServerSocket( SERVER_PORT, 100 ); DefaultListModel lmContent = (DefaultListModel)jlbContent.getModel(); lmContent.addElement("Server listening on port " + SERVER_PORT + " "); // tạo thread ₫ể chờ accept new ServerAcceptThread(this,serverSocket).start(); } // end try // handle exception creating server and connecting clients catch ( IOException ioException ) { ioException.printStackTrace(); } } // ₫ọc danh sách nhóm từ database hiển thị private void ReadDisplayGroups(){ String conStr = "jdbc:odbc:GroupList"; Connection con; String newSQL = "Select * from GroupList"; String[] data = {"dummy"}; DefaultListModel lmGroups = (DefaultListModel)jlbGroups.getModel(); Bộ môn : Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Mơn : Lập trình Mạng Chương : Viết hệ thống MiniChatter Java & dùng kỹ thuật multi-thread Slide 118 Xây dựng module Server MiniChatter try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //1 Tao connection mieu ta database can truy xuat = DriverManager.getConnection(conStr,"",""); //2 Tao doi tuong Statement lien ket den connection java.sql.Statement stmt = con.createStatement(); //4 Tao doi tuong recordset chua ket qua cua lenh SQL ResultSet rs =stmt.executeQuery(newSQL); //5 Duyet recordset de xu ly cac record cua no int i = 0; lmGroups.clear(); if (rs != null) while (rs.next()) { m_grouplist[i] = new T_GroupList(); m_grouplist[i].name = rs.getString("groupname"); lmGroups.addElement(m_grouplist[i].name); i++; } m_groupcnt = i; //6 Dong cac dong tuong da tao rs.close(); stmt.close(); con.close(); } catch (Exception e) {System.out.println("Error : "+e);} } Bộ môn : Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Mơn : Lập trình Mạng Chương : Viết hệ thống MiniChatter Java & dùng kỹ thuật multi-thread Slide 119 Xây dựng module Server MiniChatter // hàm xử lý request ₫ến từ socket sock public void messageReceived( Socket sock, String mesg ) { int status; String opcode = mesg.substring(0,5); if (opcode.compareTo("LOGIN")==0) { // login Do_login(sock,mesg); } else if (opcode.compareTo("LOGOU")==0) { // logout Do_logout(sock); } else if (opcode.compareTo("GLIST")==0) { // group list Do_glist(sock); } else if (opcode.compareTo("ULIST")==0) { // user list Do_ulist(sock); } else if (opcode.compareTo("CLOSE")==0) { // user list Do_CloseSock(sock); } else { // broadcast message Do_MulticastMesg(sock,mesg.substring(5)); } } Bộ môn : Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Mơn : Lập trình Mạng Chương : Viết hệ thống MiniChatter Java & dùng kỹ thuật multi-thread Slide 120 Xây dựng module Server MiniChatter private void Do_glist(Socket sock) { String mesg,mesg1; int i; mesg = "1 "+m_grouplist[0].name; for (i=1;i

Ngày đăng: 04/12/2015, 14:53

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan