Slide Lap Trinh Mang
-
Upload
duonng-quang-huynh -
Category
Documents
-
view
129 -
download
5
Transcript of Slide Lap Trinh Mang
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINHTRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN MÔN HỌCĐỒ ÁN MÔN HỌCLẬP TRÌNH MẠNG CĂN BẢNLẬP TRÌNH MẠNG CĂN BẢN
Đề tài:
GAME CARO QUA MẠNG LANGAME CARO QUA MẠNG LAN
Giảng viên hướng dẫn: Sinh viên thực hiện:ThS. Trần Bá Nhiệm Dương Quang Huynh
09520113
Tp Hồ Chí Minh, tháng 8 năm 2012
CHƯƠNG 1: NỀN TẢNG KIẾN THỨC
I. Lập trình mạng với socket:
- Socket là một API cung cấp các phương thức để giao tiếp thông qua mạng.
- Lập trình mức socket là nền tảng của lập trình mạng.
- Thông qua giao diện này chúng ta có thể lập trình điều khiển việc truyền thông giữa hai máy sử dụng các giao thức mức thấp là TCP, UDP…
II. Namespace System.Net và System.Net.Sockets:
- Lớp IPAddress: để chứa địa chỉ IP của máy trong mạng. Một số phương thức cần chú ý:
+ Phương thức khởi tạo:
IPAddress(Byte[]): tạo địa chỉ IP từ mảng byte (4 byte).
IPAddress(Int64): tạo địa chỉ IP từ một số kiểu long.
CHƯƠNG 1: NỀN TẢNG KIẾN THỨC (TT)
+ Parse: chuyển IP dạng chuỗi về dạng IP chuẩn.
+ TryParse: kiểm tra IP ở dạng chuỗi có hợ lệ hay không.
- Lớp IPEndPoint: chứa địa chỉ IP và số hiệu cổng để giao tiếp qua mạng. Một số phương thức cần chú ý:
+ IPEndPoint(IPAddress, Int32): tạo một đối tượng IPEndPoint mới, tham số truyền vào là một địa chỉ IPAddress và số hiệu cổng.
+ ToString: trả về địa chỉ IP và số hiệu cổng theo dạng IP:port. Ví dụ: 192.168.1.10:3000
- Lớp DNS: phân giải tên miền đơn giản, lấy thông tin về máy cục bộ như tên, địa chỉ… Một số phương thức cần chú ý:
+ GetHostEntry(IP/string Tenmay): phân giải tên hoặc địa chỉ IP và trả về đối tượng IPHostEntry.
+ GetHostByAddress(string IP): trả về thông tin của trạm có địa chỉ IP được truyền vào.
III. Giao thức UDP:
- UDP (User Datagram Protocol) là một giao thức cốt lõi của giao thức TCP/IP, thuộc loại phi kết nối (Connectionless).
- Giao thức UDP không tin cậy bằng giao thức TCP, tuy nhiên UDP có tốc độ nhanh, dễ cài đặt và hiệu quả hơn đối với các gói tin kích thước nhỏ và yêu cầu khắt khe về thời gian. Ngoài ra với giao thức UDP ta còn có thể gửi các gói tin quảng bá (broadcast).
- Trình tự kết nối:
CHƯƠNG 1: NỀN TẢNG KIẾN THỨC (TT)
III. Giao thức UDP (tt):
- Trong .NET, lớp UDPClient đóng gói các chức năng của giao thức UDP.
- Các phương thức cần lưu ý trong lớp UDPClient:
+ UdpClient(): tạo đối tượng mới của lớp UDPClient.
+ UdpClient(AddressFamily): tạo một đối tượng mới của lớp UDPClient, thuộc một dòng địa chỉ được chỉ định.
+ UdpClient(RemoteHost: String, Int32): tạo một UdpClient và thiết lập với một trạm từ xa mặc định.
+ Connect: thiết lập một default remote host.
+ Close: đóng kết nối.
+ Receive(EndPoint của máy ở xa) As Byte(): nhận dữ liệu đồng bộ do máy ở xa gửi.
+ Send: gửi dữ liệu đồng bộ cho máy ở xa.
CHƯƠNG 1: NỀN TẢNG KIẾN THỨC (TT)
IV. RegularExpressions:
- Regex là một biểu thức ở dạng chuỗi mô tả một quy tắc dùng để so khớp mẫu văn bản.
- Bất kỳ chuỗi đầu vào nào thỏa quy tắc này sẽ được coi là một chuỗi hợp lệ. Việc sử dụng Regex sẽ giúp ta loại bỏ được các dữ liệu không hợp lệ trong quá trình nhập liệu.
- Lớp Regex: lớp Regex tượng trưng cho 1 regular expression bất di bất dịch (read-only). Nó cũng chứa một phương thức tĩnh (static) cho phép chúng ta sử dụng những lớp rex khác mà khỏi khởi tạo 1 đối tượng khác.
Ví dụ:
string pattern = @"\s2000";
Regex myRegex = new Regex(pattern);
CHƯƠNG 1: NỀN TẢNG KIẾN THỨC (TT)
IV. RegularExpressions:- Các thuộc tính của lớp Regex:
+Options: trả về những mục chọn được trao qua cho constructor Regex.
+ RightToLeft: nhận 1 trị cho biết liệu xem regular expression dò tìm từ phải qua trái hay không.- Các phương thức của lớp Regex:
+ IsMatch: trả về trị bool cho biết liệu xem RE có tìm thấy một so khớp hay không trên pattern.+Match: dò tìm trên pattern xem có xuất hiện một RE hay không rồi trả về kết quả chính xác như là một đối tượng
Match duy nhất.+ Matches: dò tìm trên pattern xem tất cả các xuất hiện
của một RE có hay không rồi trả về tất cả những so khớp thành công xem như Match được gọi nhiều lần.
CHƯƠNG 1: NỀN TẢNG KIẾN THỨC (TT)
V. Đồ họa trong C#:
- Sử dụng các lớp được cung cấp bởi namespace System.Drawing.
- Lớp Pen: khởi tạo một đối tượng dùng để vẽ đường thẳng hoặc đường cong.
+ Pen(Color): khởi tạo một đối tượng Pen có màu truyền vào.
+ Pen(Color, Single): khởi tạo một đối tượng Pen có màu và độ rộng truyền vào.
- Lớp Graphic: các phương thức sử dụng
+ DrawImage(Image, Point): vẽ ra một hình ảnh giữ nguyên kích thước tại một vị trí truyền vào.
+ DrawLine(Pen, Int X1, Int Y1, Int X2, Int Y2): vẽ một đường nối hai điểm có tọa độ (X1, Y1) và (X2,
Y2).
CHƯƠNG 1: NỀN TẢNG KIẾN THỨC (TT)
CHƯƠNG 2: GIỚI THIỆU CHƯƠNG TRÌNH
I. Tổng quan:
- Ngôn ngữ lập trình: C# trên nền tảng .NET Framework 4.0.
- Công cụ lập trình: Microsoft Visual Studio 2010.
- Công cụ thiết kế: Adobe Photoshop CS5, Microsoft Paint.
II. . Giới thiệu chương trình:
1. Sơ đồ kết nối:
2. Giao diện và các chức năng của chương trình:
CHƯƠNG 2: GIỚI THIỆU CHƯƠNG TRÌNH (TT)
Thông tin của máy cục bộ, gồm tên máy và địa chỉ IP
Chọn hình thức kết nối là máy server hay máy
client
Nhập tên của bạn và IP của máy đối thủ
- Giao diện khi vào chương trình:Bảng tỉ số và quân cờ 2 bên
Thông tin người chơi
hiện tại
Thông tin đối
thủ
Các nút chức năng: Nhập lại tin nhắn, Xóa ô chat, Khóa/mở
chức năng chat
Khung nhập tin
nhắnNút gửi tin
nhắn
Nút kết nối với server
Nút bắt đầu trò chơi
Nút chọn quân cờ
Nút thoát chương
trình
CHƯƠNG 2: GIỚI THIỆU CHƯƠNG TRÌNH (TT)
- Giao diện khi đang chơi:
CHƯƠNG 2: GIỚI THIỆU CHƯƠNG TRÌNH (TT)
Khi đến lượt, nhấn chuột vào bất kì ô trống
trên bàn cờ để đặt quân cờ
của mình
- Hộp thoại thay đổi quân cờ:
CHƯƠNG 2: GIỚI THIỆU CHƯƠNG TRÌNH (TT)
- Hộp thoại giúp đỡ:
CHƯƠNG 2: GIỚI THIỆU CHƯƠNG TRÌNH (TT)
I. Kết quả đạt được:
- Tìm hiểu và hiểu rõ hơn về các lớp, phương thức trong lập trình mạng bằng C#.
- Xây dựng được chương trình chơi cờ caro qua mạng LAN đơn giản theo mô hình Client-Server.
II. Ưu điểm, nhược điểm của chương trình:
1. Ưu điểm:
- Chương trình có giao diện thân thiện.
- Có chức năng chat giữa 2 người chơi.
2. Nhược điểm:
- Chương trình chưa có tùy chọn cho việc thay đổi luật chơi.
- Khi chương trình đã chạy, không thể kết nối đến người chơi có địa chỉ IP khác so với lúc nhập ban đầu.
CHƯƠNG 3: TỔNG KẾT
III. Hướng phát triển:
- Xây dựng chương trình với nhiều tùy chọn hơn nữa trong việc chơi game.
- Giải quyết vấn đề không thể kết nối đến người chơi khác trong khi đang chạy chương trình.
- Cải tiến giao diện đẹp hơn, thân thiện hơn.
IV. Tài liệu tham khảo:
- Slide bài giảng Lập trình mạng căn bản C# (ThS. Trần Bá Nhiệm).
- Các giải pháp lập trình C# (Nguyễn Ngọc Bình Phương - Thái Thanh Phong).
- Các website:
http://www.codeproject.com/
http://msdn.microsoft.com/
http://forums.congdongcviet.com/
CHƯƠNG 3: TỔNG KẾT (TT)