Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 77 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
77
Dung lượng
2,48 MB
Nội dung
Đồ án tốt nghiệp 2009 Tìm hiểu lập trình đa luồng Java ứng dụng LỜI CẢM ƠN Để hoàn thành đồ án tốt nghiệp này, lời em xin chân thành cảm ơn thầy giáo, cô giáo Khoa Công nghệ thông tin Trƣờng Đại học Dân lập Hải Phòng, ngƣời dạy dỗ, trang bị cho em kíến thức bổ ích bốn năm học vừa qua Em xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo Phùng Anh Tuấn, ngƣời tận tình hƣớng dẫn, bảo em suốt thời gian thực tập làm đồ án Nhân dịp em xin gửi lời cảm ơn chân thành tới gia đình, bạn bè, ngƣời thân cổ vũ, động viên tiếp thêm cho em nghị lực để em hoàn thành đồ án tốt nghiệp Em xin chân thành cảm ơn ! Hải Phòng, ngày 01 tháng 07 năm 2009 Sinh viên Nguyễn Thị Hoàng Sinh viên: Nguyễn Thị Hồng - Khoa CNTT - ĐHDL Hải Phịng Đồ án tốt nghiệp 2009 Tìm hiểu lập trình đa luồng Java ứng dụng MỤC LỤC LỜI CẢM ƠN MỤC LỤC LỜI MỞ ĐẦU CHƢƠNG 1: CĂN BẢN VỀ MẠNG MÁY TÍNH 1.1 Định nghĩa mạng máy tính 1.2 Nhu cầu phát triển mạng máy tính 1.3 Phân loại mạng máy tính 1.4 Một số topo mạng thông dụng 1.5 Giao thức mạng 1.5.1 Giao thức TCP/IP 1.5.2 Giao thức UDP 13 1.6 Các mô hình hoạt động mạng máy tính 14 1.6.1 Mơ hình mạng hoạt động theo dạng peer to peer 14 1.6.2 Mơ hình mạng hoạt động theo dạng clients/ server 14 CHƢƠNG 2: SƠ LƢỢC VỀ NGÔN NGỮ LẬP TRÌNH JAVA 16 2.1 Giới thiệu 16 2.2 Một số tính chất ngơn ngữ Java 16 2.2.1 Đơn giản 16 2.2.2 Hƣớng đối tƣợng 17 2.2.3 Độc lập phần cứng hệ điều hành 17 2.2.4 Mạnh mẽ 18 2.2.5 Bảo mật 18 2.2.6 Phân tán 19 2.2.7 Đa luồng 19 2.2.8 Linh động 19 2.3 Các dạng chƣơng trình ứng dụng Java 19 2.3.1 Chƣơng trình ứng dụng dạng độc lập (Application) 19 2.3.2 Chƣơng trình ứng dụng dạng nhúng (Applet) 20 2.3.3 Chƣơng trình ứng dụng dạng lai ghép 21 2.4 Cấu trúc tệp chƣơng trình Java 21 CHƢƠNG 3: LẬP TRÌNH SOCKET TCP 23 3.1 Định nghĩa 23 Sinh viên: Nguyễn Thị Hoàng - Khoa CNTT - ĐHDL Hải Phịng Đồ án tốt nghiệp 2009 Tìm hiểu lập trình đa luồng Java ứng dụng 3.2 Mơ hình clients/server sử dụng socket chế độ hƣớng kết nối TCP 25 3.3 Lập trình Socket TCP Java 27 3.3.1 Xây dựng chƣơng trình clients chế độ hƣớng kết nối 28 3.3.2 Xây dựng chƣơng trình server chế độ hƣớng kết nối 29 CHƢƠNG 4: LUỒNG TRONG JAVA 31 4.1 Khái niệm luồng 31 4.1.1 Tiếp cận luồng mức ngƣời dùng 33 4.1.2 Tiếp cận luồng mức hạt nhân hệ điều hành 34 4.2 Luồng Java 34 4.2.1 Các phƣơng pháp thực luồng 34 4.2.2 Độ ƣu tiên luồng 39 4.2.3 Nhóm luồng 40 4.2.4 Đồng hóa luồng thi hành 40 CHƢƠNG 5: CHƢƠNG TRÌNH ỨNG DỤNG 43 5.1 Giới thiệu 43 5.2 Mơ hình chung truy nhập sở liệu Web 44 5.3 Chƣơng trình ứng dụng 45 5.3.1 Mơ hình chế hoạt động 45 5.3.2 Thiết kế cài đặt sở liệu thử nghiệm 46 5.3.3 Thiết kế chƣơng trình 48 5.3.4 Một số giao diện 50 5.4 Nhận xét 62 KẾT LUẬN 63 TÀI LIỆU THAM KHẢO 64 PHỤ LỤC 65 Hƣớng dẫn tạo tệp sách java.policy 65 Mã nguồn chƣơng trình 71 Sinh viên: Nguyễn Thị Hoàng - Khoa CNTT - ĐHDL Hải Phịng Đồ án tốt nghiệp 2009 Tìm hiểu lập trình đa luồng Java ứng dụng LỜI MỞ ĐẦU Ngày nay, với phát triển với tốc độ chóng mặt khoa học kỹ thuật, kỷ nguyên đƣợc mở ra, kỷ nguyên công nghệ thơng tin Nhu cầu lồi ngƣời ngày lớn, đặc biệt ngành khoa học kỹ thuật khác cần đến hổ trợ công nghệ thông tin, công nghệ phần cứng phát triển nhanh, CPU với tốc độ xử lý ngày cao, nhƣng lại nảy sinh nhiều toán thực tế sản xuất địi hỏi phải xử lí nhanh Vấn đề xử lý song song ngày đƣợc nghiên cứu nhiều để giải số toán mà thực tiễn đặt ra, vấn đề cần có kết thời gian thực nhƣ: tốn dự báo thời tiết, điều tiết giao thơng, điều khiển tàu vũ trụ,các tốn mơ phỏng…Vì vậy, việc nghiên cứu giải thuật cho xử lý song song yêu cầu thách thức cho nhà khoa học liên quan đến khoa học máy tính Java đời dự đốn trƣớc xảy giới cơng nghệ máy tính, hỗ trợ cho việc xử lý song song với chế đa luồng Nhƣng lĩnh vực giáo dục lƣợng tài liệu nói lập trình đa luồng nói chung lập trình đa luồng Java cịn tƣơng đối trình bầy chƣa sâu, ví dụ minh họa cho chế lập trình nói Nội dung đồ án tốt nghiệp cố gắng làm rõ số khái niệm lập trình đa luồng Java cài đặt chƣơng trình ứng dụng minh họa Nội dung đồ án tốt nghiệp đƣợc trình bầy chƣơng Chương trình bầy kiến thức mạng máy tính: định nghĩa, phân loại, loại giao thức mạng, mô hình hoạt động mạng máy tính,…để ta tiếp cận với chƣơng Chương giới thiệu Java, tính chất, dạng chƣơng trình ứng dụng Java, cấu trúc tệp chƣơng trình Java Chương trình bầy lập trình Socket TCP lập trình Socket TCP Java Chương giới thiệu khái niệm luồng, cách tiếp cận luồng, từ sâu vào vấn đề liên quan đến luồng Java: phƣơng pháp thực hiện, độ ƣu tiên, nhóm luồng, đồng hóa luồng thi hành Sinh viên: Nguyễn Thị Hoàng - Khoa CNTT - ĐHDL Hải Phịng Đồ án tốt nghiệp 2009 Tìm hiểu lập trình đa luồng Java ứng dụng Chương trình bầy chi tiết ứng dụng truy nhập sở liệu web dựa việc tìm hiểu lý thuyết lập trình đa luồng Java Tiếp theo phần kết luận, cuối tài liệu tham khảo phụ lục Sinh viên: Nguyễn Thị Hoàng - Khoa CNTT - ĐHDL Hải Phòng Đồ án tốt nghiệp 2009 Tìm hiểu lập trình đa luồng Java ứng dụng CHƢƠNG 1: CĂN BẢN VỀ MẠNG MÁY TÍNH 1.1 Định nghĩa mạng máy tính Mạng máy tính tập hợp máy tính đƣợc nối với đƣờng truyền theo cấu trúc thơng qua máy tính trao đổi thơng tin qua lại cho Đƣờng truyền hệ thống thiết bị truyền dẫn có dây hay khơng dây dùng để chuyển tín hiệu điện tử từ máy tính đến máy tính khác Các tín hiệu điện tử biểu thị giá trị liệu dƣới dạng xung nhị phân (on - off) Tất tín hiệu đƣợc truyền máy tính thuộc dạng sóng điện từ Tùy theo tần số sóng điện từ dùng đƣờng truyền vật lý khác để truyền tín hiệu Ở đƣờng truyền đƣợc kết nối dây cáp đồng trục, cáp xoắn, cáp quang, dây điện thoại, sóng vô tuyến, Các đƣờng truyền liệu tạo nên cấu trúc mạng Hai khái niệm đƣờng truyền cấu trúc đặc trƣng mạng máy tính Hình 1.1 Một mơ hình máy tính liên kết mạng Sinh viên: Nguyễn Thị Hoàng - Khoa CNTT - ĐHDL Hải Phòng Đồ án tốt nghiệp 2009 Tìm hiểu lập trình đa luồng Java ứng dụng 1.2 Nhu cầu phát triển mạng máy tính Ngày nay, máy tính đƣợc sử dụng cách rộng rãi số lƣợng máy tính văn phịng hay quan đƣợc tăng lên nhanh chóng việc kết nối chúng trở nên vơ cần thiết mang lại nhiều hiệu cho ngƣời sử dụng Với lƣợng lớn thông tin, nhu cầu xử lý thông tin ngày cao, mạng máy tính trở nên quen thuộc lĩnh vực nhƣ: thƣơng mại, dịch vụ, giáo dục, khoa học, quân sự, quốc phòng, Ngƣời ta thấy đƣợc việc kết nối máy tính thành mạng cho khả to lớn nhƣ: - Sử dụng chung tài nguyên: tài nguyên (nhƣ thiết bị, chƣơng trình, liệu) đƣợc trở thành tài nguyên chung thành viên mạng tiếp cận đƣợc mà khơng quan tâm tới tài nguyên đâu - Tăng độ tin cậy hệ thống: ngƣời ta dễ dàng bảo trì máy móc, lƣu trữ (backup) liệu chung có trục trặc hệ thống chúng đƣợc khơi phục nhanh chóng Trong trƣờng hợp có trục trặc trạm làm việc ngƣời ta sử dụng trạm khác thay - Nâng cao chất lượng hiệu khai thác thơng tin: thơng tin đƣợc sử dụng chung mang lại cho ngƣời sử dụng khả tổ chức lại công việc với thay đổi chất nhƣ: + Ðáp ứng nhu cầu hệ thống ứng dụng kinh doanh đại + Cung cấp thống liệu + Tăng cƣờng lực xử lý nhờ kết hợp phận phân tán + Tăng cƣờng truy nhập tới dịch vụ mạng khác đƣợc cung cấp giới Với nhu cầu đòi hỏi ngày cao xã hội nên vấn đề kỹ thuật mạng mối quan tâm hàng đầu nhà tin học Ví dụ nhƣ: làm để truy xuất thông tin cách nhanh chóng tối ƣu, việc xử lý thơng tin mạng q nhiều, đơi làm tắc nghẽn gây thông tin cách đáng tiếc Hiện nay, việc có đƣợc hệ thống mạng chạy thật tốt, thật an toàn với lợi ích kinh tế cao đƣợc quan tâm Sinh viên: Nguyễn Thị Hoàng - Khoa CNTT - ĐHDL Hải Phịng Đồ án tốt nghiệp 2009 Tìm hiểu lập trình đa luồng Java ứng dụng 1.3 Phân loại mạng máy tính Do mạng máy tính đƣợc phát triển khắp nơi với ứng dụng ngày đa dạng việc phân loại mạng máy tính việc phức tạp Dựa theo phạm vi phân bố mạng ta phân loại mạng nhƣ sau: - GAN (Globa Area Network): kết nối máy tính châu lục với thông qua mạng viễn thông vệ tinh - WAN (Wide Area NetWork): kết nối máy tính nội quốc gia hay quốc gia châu lục; việc thực kết nối thông qua mạng viễn thông - MAN (Metropolitan Area Network): kết nối máy tính phạm vi thành phố Kết nối đƣợc thực thông qua môi trƣờng truyền thông tốc độ cao (50-100 Mbps) - LAN (Local Area Network): mạng cục kết nối máy tính khu vực bán kính hẹp (thơng thƣờng khoảng vài trăm mét) Kết nối đƣợc thực môi trƣờng truyền thông tốc độ cao LAN thƣờng đƣợc sử dụng quan hay tổ chức, mạng LAN đƣợc sử dụng phổ biến 1.4 Một số topo mạng thông dụng Theo định nghĩa mạng máy tính, máy tính đƣợc nối với đƣờng truyền vật lý theo kiến trúc đó, kiến trúc gọi Topology Thơng thƣờng mạng có ba loại kiến trúc, là: mạng hình (Star Topology), mạng dạng tuyến (Bus Topology), mạng dạng vòng (Ring Topology) - Ring Topology: Mạng đƣợc bố trí vịng tròn, đƣờng dây cáp đƣợc thiết kế làm thành vịng khép kín, tín hiệu chạy theo chiều Các nút truyền tín hiệu cho thời điểm đƣợc nút mà thơi Mạng dạng vịng có thuận lợi nới rộng xa nhƣng đƣờng dây phải khép kín, bị ngắt nơi tồn hệ th ng bị ngƣng Hình 1.2 Ring Topology Sinh viên: Nguyễn Thị Hồng - Khoa CNTT - ĐHDL Hải Phịng Đồ án tốt nghiệp 2009 Tìm hiểu lập trình đa luồng Java ứng dụng - Bus Topology: Ở dạng Bus tất nút đƣợc phân chia đƣờng truyền (bus) Đƣờng truyền đƣợc giới hạn hai đầu loại đầu nối đặc biệt gọi Terminator Khi nút truyền liệu, tín hiệu đƣợc quảng bá hai chiều bus, nút cịn lại đƣợc nhận tín hiệu trực tiếp Loại mạng dùng dây cáp ít, dễ lắp đặt Tuy có bất lợi, có ùn tắc giao thông di chuyển với lƣu lƣợng lớn có hỏng hóc đoạn khó phát hiện, nút ngừng hoạt động ảnh hƣởng tới toàn hệ thống Hình 1.3 Bus Topology Hình 1.4 Star Topology - Star Topology: Mạng hình bao gồm tập trung nút thông tin Các nút thông tin trạm cuối, máy tính hay thiết bị khác mạng Mạng hoạt động theo nguyên lý nối song song nên có nút bị hỏng, mạng hoạt động bình thƣờng Mạng mở rộng thu hẹp tùy theo yêu cầu ngƣời sử dụng, nhiên mở rộng phụ thuộc vào khả trung tâm 1.5 Giao thức mạng Giao thức mạng tập quy tắc, quy ƣớc để trao đổi thông tin hai hệ thống máy tính hai thiết bị máy tính với Nói cách hình thức giao thức mạng ngơn ngữ đƣợc máy tính mạng sử dụng để trao đổi liệu với Có nhiều loại giao thức đƣợc sử dụng mạng máy tính nhƣ: Apple Talk, DLC, NetBEUI,… nhƣng giao thức đƣợc sử dụng phổ biến mạng máy tính giao thức TCP/IP 1.5.1 Giao thức TCP/IP Giao thức TCP/IP đƣợc phát triển từ mạng ARPANET Internet đƣợc dùng nhƣ giao thức mạng vận chuyển mạng Internet TCP (Transmission Control Protocol) giao thức thuộc tầng vận chuyển IP (Internet Prorocol) giao thức Sinh viên: Nguyễn Thị Hoàng - Khoa CNTT - ĐHDL Hải Phịng Đồ án tốt nghiệp 2009 Tìm hiểu lập trình đa luồng Java ứng dụng thuộc tầng mạng mơ hình OSI Họ giao thức TCP/IP giao thức đƣợc sử dụng rộng rãi để liên kết máy tính mạng Hiện máy tính hầu hết mạng sử dụng giao thức TCP/IP để liên kết với thông qua nhiều hệ thống mạng với kỹ thuật khác Giao thức TCP/IP thực chất họ giao thức cho phép hệ thống mạng làm việc với thông qua việc cung cấp phƣơng tiện truyền thông liên mạng Giao thức IP Nhiệm vụ giao thức IP cung cấp khả kết nối mạng thành liên kết mạng để truyền liệu, vai trò IP vai trị giao thức tầng mạng mơ hình OSI Giao thức IP giao thức kiểu không hƣớng kết nối (connectionless), có nghĩa khơng cần có giai đoạn thiết lập liên kết trƣớc truyền liệu Để định danh trạm (host) liên mạng đƣợc ngƣời ta sử dụng địa IP có độ dài 32 bits Mỗi giao diện máy có hỗ trợ giao thức IP đƣợc gán địa IP (một máy tính gắn với nhiều mạng có nhiều địa IP) Địa IP gồm phần: bit định danh lớp mạng, địa mạng (netID) địa máy (hostID) Mỗi địa IP đƣợc phân thành vùng (mỗi vùng byte), biểu thị dƣới dạng thập phân, bát phân, thập lục phân hay nhị phân Cách viết phổ biến dùng ký pháp thập phân có dấu chấm (dotted decimal notation) để tách vùng Mục đích địa IP để định danh cho máy tính liên mạng Do tổ chức độ lớn mạng (subnet) liên mạng khác nhau, ngƣời ta chia địa IP thành lớp, ký hiệu A, B, C, D, E Trong lớp A, B, C chứa địa gán đƣợc Lớp D dành riêng cho lớp kỹ thuật multicasting Lớp E đƣợc dành cho ứng dụng tƣơng lai Sinh viên: Nguyễn Thị Hồng - Khoa CNTT - ĐHDL Hải Phịng 10 Đồ án tốt nghiệp 2009 Tìm hiểu lập trình đa luồng Java ứng dụng KẾT LUẬN Lập trình đa luồng phƣơng pháp tốt để xây dựng chƣơng trình xử lý song song chạy máy tính chip đơn Đề tài "Tìm hiểu lập trình đa luồng Java ứng dụng" đạt đƣợc thành công định Về sở lý thuyết, đồ án trình bầy đƣợc nội dung mạng máy tính, sơ lƣợc ngơn ngữ Java, lập trình Socket TCP nói chung lập trình Socket TCP Java nói riêng; nội dung liên quan đến luồng lập trình đa luồng Java Về ứng dụng đồ án giới thiệu, đƣa đƣợc mơ hình chƣơng trình, chế hoạt động cài đặt thành cơng chƣơng trình truy nhập sở liệu Web Bên cạnh đồ án phân tích chi tiết cách thiết kế, cài đặt chƣơng trình cho độc giả quan tâm tiến hành làm thực nghiệm dễ dàng Java ngôn ngữ mạnh mẽ, tính bảo mật cao độc lập với nền, chƣơng trình ứng dụng đồ án dễ dàng chạy hệ thống khác mà khơng phải lập trình lại Tuy nhiên, với thời gian trình độ cịn nhiều hạn chế nên đồ án số vấn đề chƣa kịp giải nhƣ chƣa hiển thị đƣợc font tiếng Việt form, chƣa có ví dụ minh họa cho lý thuyết nhóm luồng đồng hóa luồng, sở liệu chƣa đủ lớn Trong tƣơng lai em tiếp tục tìm hiểu, khắc phục hạn chế, mở rộng hồn thiện chƣơng trình Sinh viên: Nguyễn Thị Hồng - Khoa CNTT - ĐHDL Hải Phịng 63 Đồ án tốt nghiệp 2009 Tìm hiểu lập trình đa luồng Java ứng dụng TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt [1] Lập trình hướng đối tượng với Java TS Đồn Văn Ban - Viện Cơng nghệ thơng tin [2] Giáo trình lập trình truyền thơng Biên soạn: Ngô Bá Hùng, Nguyễn Công Huy - Đại học Cần Thơ [3] Mạng thơng tin máy tính- Kiến trúc, nguyên tắc hiệu suất hoạt động Vũ Duy Lợi - Nhà xuất Đại học Quốc gia Hà Nội [4] Đề cương giảng Java sở Đại học sƣ phạm kỹ thuật Hƣng Yên [5] JAVA lập trình mạng Nguyễn Phƣơng Lan Hoàng Đức Hải - NXB Giáo Dục [6] Học nhanh kỹ thuật lập trình Java Nguyễn Viết Linh, Đậu Quang Tuấn - Xí nghiệp in Bến Tre Tài liệu tiếng Anh [1] Java Network Programming Elliotte Rusty Harold [2] Programming the Internet with Java Darrel Ince & Adam Freemat, Addison-Wesley [3] Thinking in JAVA Bruce Eckel Các tài liệu khác [1] www.javabeginner.com [2] www.javavietnam.org [3] www.java.sun.com [4] www.vi.wikipedia.org Sinh viên: Nguyễn Thị Hoàng - Khoa CNTT - ĐHDL Hải Phòng 64 Đồ án tốt nghiệp 2009 Tìm hiểu lập trình đa luồng Java ứng dụng PHỤ LỤC Hƣớng dẫn tạo tệp sách java.policy 1.1 Khởi động cơng cụ tạo tệp sách - Bấm đôi nút chuột trái tệp PolicyTool.exe thƣ mục BIN trình biên dịch JDK Nhận đƣợc thơng báo sau hình - Đây lỗi chƣa có tệp sách ( bắt buộc phải đặt tên java.policy) Chọn OK để đóng cửa sổ thông báo lỗi trở lại cửa sổ tạo file sách nhƣ hình dƣới 1.2 Tạo file sách - Mở menu file→Save As Xuất khung đối thoại Sinh viên: Nguyễn Thị Hoàng - Khoa CNTT - ĐHDL Hải Phịng 65 Đồ án tốt nghiệp 2009 Tìm hiểu lập trình đa luồng Java ứng dụng - Chọn thƣ mục chứa file sách theo yêu cầu Java Tên file bắt buộc phải gõ (.java.policy) Chọn nút lệnh Save để ghi file lên đĩa Xuất thông báo - Chọn OK để tiếp tục, lúc file rỗng chƣa có thơng tin Cửa sổ Policy Tool có dạng nhƣ hình dƣới Sinh viên: Nguyễn Thị Hồng - Khoa CNTT - ĐHDL Hải Phịng 66 Đồ án tốt nghiệp 2009 Tìm hiểu lập trình đa luồng Java ứng dụng 1.3 Cấp quyền sử dụng Java Socket - Bấm chuột trái nút lệnh Add Policy Entry Xuất khung đối thoại sau - Bấm đơn nút chuột trái nút lệnh Add Permission Xuất khung đối thoại Sinh viên: Nguyễn Thị Hoàng - Khoa CNTT - ĐHDL Hải Phòng 67 Đồ án tốt nghiệp 2009 Tìm hiểu lập trình đa luồng Java ứng dụng - Trong lựa chọn Permission chọn nhƣ hình dƣới - Trong hộp value lựa chọn Target Name gõ vào giá trị nhƣ hình dƣới - Trong hộp value lựa chọn Actions chọn nhƣ hình dƣới - Chọn OK kết thúc quay trở lại khung đối thoại nhƣ hình dƣới Sinh viên: Nguyễn Thị Hồng - Khoa CNTT - ĐHDL Hải Phịng 68 Đồ án tốt nghiệp 2009 Tìm hiểu lập trình đa luồng Java ứng dụng - Chọn nút lệnh Done kết thúc quy lại khung đối thoại sau Sinh viên: Nguyễn Thị Hoàng - Khoa CNTT - ĐHDL Hải Phịng 69 Đồ án tốt nghiệp 2009 Tìm hiểu lập trình đa luồng Java ứng dụng 1.4 Thốt Mở menu file→ Save để ghi nội dung file sách lên đĩa sau mở menu file→Exit để Sinh viên: Nguyễn Thị Hoàng - Khoa CNTT - ĐHDL Hải Phịng 70 Đồ án tốt nghiệp 2009 Tìm hiểu lập trình đa luồng Java ứng dụng Mã nguồn chƣơng trình Mơ đun phía Server: File SocketServer.java //============ import java.net.* ; import java.io.* ; import java.sql.* ; public class SocketServer { static int PORT = 8080 ; // cong mac dinh // public static void main(String[] arg) { try { // Tao socket cho server ServerSocket ss = new ServerSocket(PORT); System.out.println("Server lang nghe tren port:" + ss.getLocalPort()); while(true) { try { // lang nghe cac yeu cau ket noi tu Client Socket s = ss.accept(); RequestProcessing rp = new RequestProcessing(s); rp.start(); // khoi dong phan xu ly cho client hien tai } catch(IOException e) { System.out.println("Connection Error : "+e); } } } catch(IOException e) { System.out.println("Create Socket Error : "+e); } } } Sinh viên: Nguyễn Thị Hoàng - Khoa CNTT - ĐHDL Hải Phịng 71 Đồ án tốt nghiệp 2009 Tìm hiểu lập trình đa luồng Java ứng dụng //==================================== class RequestProcessing extends Thread { Socket client ; // Socket tra loi cho client static String _driver ="com.microsoft.jdbc.sqlserver.SQLServerDriver"; static String _url = "jdbc:microsoft:sqlserver://10.5.101.30:1433;DatabaseName=QLSV_H"; static Connection ; // doi tuong ket noi static Statement stmt ; // dai dien cac cau lenh cua SQL static ResultSet r ; // doi tuong chua ket qua truy van // -public RequestProcessing(Socket s) { client = s; } // -public void run() { String xau; try { // Nap driver Class.forName(_driver) ; =DriverManager.getConnection(_url,"vidu","123") ; // thiet lap doi tuong ket noi } catch(java.lang.ClassNotFoundException e) { System.out.println("Khong Tim Thay Lop Driver") ; System.exit(1) ; } catch(java.sql.SQLException e) { System.out.println("Khong Mo Duoc Ket Noi Toi CSDL") ; System.exit(1) ; } try { // inStream: doi tuong nhan thong diep Sinh viên: Nguyễn Thị Hoàng - Khoa CNTT - ĐHDL Hải Phòng 72 Đồ án tốt nghiệp 2009 Tìm hiểu lập trình đa luồng Java ứng dụng BufferedReader inStream = new BufferedReader( new InputStreamReader(client.getInputStream())) ; // Tao Ra Doi Tuong Viet Du Lieu Len socket_server PrintWriter outStream = new PrintWriter( new BufferedWriter( new OutputStreamWriter(client.getOutputStream())),true) ; boolean finished = false ; { String inLine = inStream.readLine() ; //chuoi nhan tu clients System.out.println("Received : "+inLine) ; if(inLine.equalsIgnoreCase("END")) finished = true ; try { stmt = con.createStatement() ; if(inLine.equals("*")) //in tat ca ban ghi nhan ve '*' { xau="Select a.masv,a.hoten,a.gioitinh,a.lop,b.tenmon,b.dvht,c.diemthi,c.lanthi From tbl_sinhvien as a,tbl_monhoc as b,tbl_diemthi as c where a.masv=c.masv and b.mamon=c.mamon"; r = stmt.executeQuery(xau) ; // thuc hien truy van } else // in ban ghi theo masv nhan duoc tu client xau="Select a.masv,a.hoten,a.gioitinh,a.lop,b.tenmon,b.dvht,c.diemthi,c.lanthi From tbl_sinhvien as a,tbl_monhoc as b,tbl_diemthi as c where a.masv=c.masv and b.mamon=c.mamon and a.masv='"+inLine+"'"; r = stmt.executeQuery(xau); // thuc hien truy van tren ResultSetMetaData mrs= r.getMetaData(); // cung cap thong tin cau truc cua CSDL Sinh viên: Nguyễn Thị Hồng - Khoa CNTT - ĐHDL Hải Phịng 73 Đồ án tốt nghiệp 2009 Tìm hiểu lập trình đa luồng Java ứng dụng int socot=mrs.getColumnCount(); // xac dinh so cot cua mrs String outLine ="" ; for(int j=1;j