Lập trình mạng

15 285 0
Lập trình mạng

Đ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

Lập trình mạng Lập trình mạng Bởi: Khoa CNTT ĐHSP KT Hưng Yên Lập trình mạng nhiệm vụ để phát triển ứng dụng doanh nghiệp Một chương trình mạng viết để chương trình máy tính khác truyền tin với cách hiệu an toàn cho dù chúng cài đặt mạng LAN, WAN hay mạng toàn cầu Internet, điều thành công nhiều hệ thống Lập trình mạng NET Mạng cục LAN(Local Area Network) mạng thiết lập để liên kết máy tính khu vực tòa nhà, khu nhà Microsoft NET Framework bao gồm tập lớp dùng để lập trình mạng thuộc hai không gian tên: System.Net System.Net.Sockets Các lớp hỗ trợ thứ, từ lập trình dựa trên-socket với TCP/IP download file trang HTML từ web thông qua HTTP Hai không gian tên cung tảng cho hai networking cấp cao - Remoting dịch vụ Web XML Giới thiệu Socket SocKet giao diện lập trình (API – Application Program Interface) ứng dụng mạng thông qua giao diện lập trình điều khiển việc truyền thông máy sử dụng giao thức mức thấp TCP,UDP… , Socket trừu tượng hóa mức cao, tưởng tượng thiết bị truyền thông chiều tương tự tệp tin, gửi/nhận liệu máy, tương tự việc đọc ghi tệp tin Để liên lạc thông qua socket, ta cần tiến hành thao tác sau: - Tạo hay mở socket + Gắn socket với địa chỉ, địa địa máy cần liên lạc + Thực việc liên lạc tuỳ thuộc vào chế độ kết nối: 1/15 Lập trình mạng * Liên lạc theo chế độ không kết nối (UDP): Hai tiến trình liên lạc với không kết nối trực tiếp, thông điệp gửi phải kèm theo địa người nhận, Hình thức liên lạc có đặc điểm: • Người gửi không chắn thông điệp họ có đến tay người nhận hay không? • Một thông điệp gửi nhiều lần • Thông điệp gửi sau đến đích trước thông điệp gửi trước * Liên lạc chế độ kết nối (TCP): Có đường kết nối ảo thành lập tiến trình, truớc kết nối thành lập tiến trình phải đợi tiến trình yêu cầu kết nối, sử dụng theo mô hình kết nối Client/Server Trong mô hình server sử dụng lời kêu gọi listen accept để lắng nghe chấp nhận yêu cầu kết nối Trong phần học cách thao tác kết nối socket NET Compact Framework Lập trình Socket với NET Compact Framework Lớp System.Net.Sockets.Socket Thủ tục để nhận lớp Socket kết nối với máy xa phụ thuộc vào máy tính đó, nhiên trình xử lý để đọc ghi liệu giống Để sử dụng lớp xử lý mạng NET Compact Framework, phải khai báo không gian tên System.Net Ví dụ: using System.Net Tạo kết nối từ máy khách tới máy chủ (client) Để tạo kết nối thành công, trước tiên phải tìm hiểu lớp System.Net.EndPoint Để lưu giữ thông tin điểm cuối nơi mà kết nối đến: địa IP máy chủ số hiệu cổng mong muốn Để thiết lập điểm cuối sử dụng để kết nối socket tới máy chủ, làm theo bước sau: Bước 1: Khai báo biến điểm cuối (EndPoint) biến Socket Bước 2: Điểm cuối gồm thông tin địa số hiệu cổng Có hai cách để làm điều này, phụ thuộc vào địa máy chủ, giống là: 192.168.4.3, tên DSN máy chủ, www.mycomputer.net Tìm địa IP máy chủ: 2/15 Lập trình mạng Nếu biết địa IP máy chủ, sử dụng IPAddress cấu trúc Ví dụ sau mô tả khởi tạo điểm cuối, máy chủ có địa IP 192.168.4.3, cổng 2000: EndPoint l_EndPoint = Convert.ToInt16(2000)); new IPEndPoint( IPAddress.Parse("192.168.4.3"), Nếu địa IP, phải dùng DSN để tìm địa IP máy chủ thông qua tên DSN tìm kiếm trả lại địa IP tương ứng với tên Đoạn mã sau trường hợp: IPHostEntry l_IPHostEntry = Dns.Resolve("www.mycomputer.net"); EndPoint l_EndPoint = new IPEndpoint(l_IPHostEntry.AddressList[0], 9981); Bước 3: Sử dụng điểm cuối (EndPoint) để thử kết nối socket tới máy chủ Chúng ta phải sử dụng mệnh đề try/catch đây, thử kết nối đưa ngoại lệ có vấn đề, máy chủ từ chối không chấp nhận kết nối máy chủ không tồn tại, Ví dụ sau mô tả ba bước trên: try { Socketl_Socket =new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); l_Socket.Connect(l_EndPoint); if (l_Socket.Connected){ // l_Socket bầy gửi nhận liệu } } catch (SocketException e) { /* Đưa thông báo lỗi,… */ } Tạo kết nối từ máy chủ lằng nghe từ máy khách (Host) 3/15 Lập trình mạng Chúng ta thu kết nối socket từ máy tính xa cách đảm nhiệm máy chủ Khi thiết bị máy chủ, đợi nhận kết nối từ máy khách Để tạo kết nối để thiết bị máy chủ, phải thiết lập socket lắng nghe cổng đến gửi yêu cầu kết nối đến thiết bị Sau bước tạo socket lắng nghe cổng máy khác kết nối tới: Bước 1: Tạo socket để lắng nghe kết nối Bước 2: Ràng buộc socket lắng nghe cổng Nó lắng nghe kết nối cổng Bước 3: Gọi Accept() socket lắng nghe nhận từ socket khác kết nối tới Đoạn mã đọc ghi socket nhận được, socket tiếp tục đợi kết nối Ví dụ sau mô tả ba bước trên: m_listenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); m_listenSocket.Bind(new IPEndPoint(IPAddress.Any, 8758)); m_listenSocket.Listen((int)SocketOptionName.MaxConnections); m_connectedSocket = m_listenSocket.Accept(); if (m_connectedSocket != null) { if (m_connectedSocket.Connected) { // Someone has connected to us } } Gửi nhận Socket kết nối 4/15 Lập trình mạng Một socket kết nối tới máy tính xa Nó sử dụng gửi nhận liệu Cách đơn giản để làm việc gọi Socket.Send() để gửi liệu Socket.Receive() nhận liệu Gửi liệu vào Socket với Socket.Send Socket.Send() có bốn thành phần nạp chồng, thành phần mức khác điều khiển thông qua gửi: - Send(Byte[] buffer): Gửi tất mội thứ bên mảng byte buffer - Send(Byte[] buffer, SocketFlags socketFlags) Gửi tất thứ buffer với hạn chế riêng thông qua cách liệu - Send(Byte[] buffer, Int32 size, SocketFlags socketFlags): Gửi tất liệu buffer tuỳ theo kích cỡ size Nếu muốn gửi phần buffer, sau rõ SocketFlags.None sử dụng mặc định hành vi gửi Ví dụ, để gửi 16 byte đầu tiền mảng, sử dụng l_Socket.Send(l_buffer, 16, SocketFlags.None) - Send(Byte[]buffer,Int32 offset Int32 size, SocketFlags socketFlags): Giống thành phần khác rõ số bắt đầu mảng Ví dụ, để gửi từ byte tứ đến bute thứ mảng, sử dụng sau: l_Socket.Send(l_buffer, 2, 6, SocketFlags.None); Phương thức Send trả số byte gửi thành công Vấn đề với phương thức send() dường giống nhiều việc biến đổi tất muốn gửi vào mảng byte để gửi thông qua socket .NET Compact Framework hỗ trợ hai lớp hữu ích, System.Text.Encoding System.Convert, hai lớp giúp chuyển đổi kiểu liệu thành mảng byte để gửi qua socket Cách dễ để tìm hiểu cách sử dụng lớp Encoding Convert xem ví dụ Sau ví dụ socket có tên l_Socket tồn kết nối: Gửi chuỗi sử dụng mã hoá ASCII : l_Socket.Send(Encoding.ASCII.GetBytes("Send me") Gửi chuỗi sử dụng mã hoá Unicode: l_Socket.Send(Encoding.Unicode.GetBytes("Send me") Gửi số nguyên có giá trị 2003: 5/15 Lập trình mạng l_Socket.Send(Encoding.ASCII.GetBytes(Convert.ToString(2003)) Gửi số thực có giá trị 2.7: l_Socket.Send(Encoding.ASCII.GetBytes(Convert.ToString(2.7)) Nhận liệu từ từ socket Socket.Receive Nhận liệu từ socket thông qua phương thức Socket.Receive Receive có bốn thành phần nạp chồng, giống thành phần nạp chồng Socket.Send Mỗi thành phần nạp chồng trả số byte đọc thành công: - Receive (Byte[] buffer): Thành phần nhận liệu đệm - Receive (Byte[] buffer, SocketFlags socketFlags) Thành phần nhận liệu đệm cách sử dụng cờ để liệu lấy - Receive (Byte[] buffer, Int32 size, SocketFlags socketFlags) Thành phần nhận tuỳ theo kích cỡ liệu đệm Nếu liệu nhiều liệu sẵn sàng, bỏ qua Chúng ta nhận liệu lại cách gọi lại Receive Nếu muốn nhận byte mà không nhận được, sau SocketFlags.None để sử dụng mặc định cho hành động gửi Ví dụ để nhận 16 byte liệu sẵn sàng, sử dụng l_Socket.Receive(l_buffer, 16, SocketFlags.None) - Receive (Byte[]buffer, Int32 offset Int32 size, SocketFlags socketFlags) Thành phần giống thành phần trước, khác số mảng để sử dụng bắt đầu ghi liệu vào mảng Ví dụ, để nhận byte liệu đệm vị trí thứ đệm, sử dụng đoạn mã sau: l_Socket.Receive(l_buffer, 2, 6, SocketFlags.None); Có kỹ thuật cho phép chuyển đổi liệu để gửi từ socket mảng, kỹ thuật đơn giản nhấtlà chuyển đổi mảng byte kiểu liệu Như phần trước, lớp Encoding Convert cung cấp phương tiện cho chuyển đổi, xem ví dụ Đầy ví dụ thừa nhận liệu nhận mảng Byte có tên l_Buffer: Chuyển đổi byte nhận chuỗi ASCII : string l_ASCII = Encoding.ASCII.GetString(l_Buffer); Chuyển đổi nhận chuỗi Unicode: string l_ASCII = Encoding.Unicode.GetString(l_Buffer); 6/15 Lập trình mạng Chuyển đổi byte nhận được, mã ASCII text integer: int l_Integer = Convert.ToInt32(Encoding.ASCII.GetString(l_Buffer)); Chuyển đổi byte nhận được, mã ASCII text integer, into a Double: Double l_Double = Convert.ToInt32(Encoding.ASCII.GetString(l_Double)); Kiểu liệu đầu vào chấp nhận Phương thức Tên kiểu liệu đầu vào chấp nhận ToBoolean object, bool, sbyte, char, byte, short, ushort, int, uint, long, String, float, double, decimal ToChar object, char, sbyte, byte, short, ushort, int, uint, long, ulong, String, float, double, decimal ToSByte object, bool, sbyte, char, byte, short, ushort, int, uint, long, ulong, float, double, decimal, String ToByte object, bool, sbyte, char, byte, short, ushort, int, uint, long, ulong, float, double, decimal, String ToInt16 object, bool, char, sbyte, byte, ushort, int, uint, short, long, ulong, float, double, decimal, String ToUInt16 object, bool, char, sbyte, byte, ushort, int, uint, short, long, ulong, float, double, decimal, String ToInt32 object, bool, char, sbyte, byte, short, ushort, uint, int, long, ulong, float, double, decimal, String ToUInt32 object, bool, char, sbyte, byte, short, ushort, uint, int, long, ulong, float, double, decimal, String ToInt64 object, bool, char, sbyte, byte, short, ushort, int, uint, ulong, long, float, double, decimal, String ToUInt64 object, bool, char, sbyte, byte, short, ushort, int, uint, ulong, long, float, double, decimal, String ToSingle object, sbyte, byte, char, short, ushort, int, uint, long, ulong, float, double, decimal, String, bool ToDouble object, sbyte, byte, short, char, ushort, int, uint, long, ulong, float, double, decimal, String, bool ToDecimal object, sbyte, byte, char, short, ushort, int, uint, long, ulong, float, double, String, decimal, bool, DateTime 7/15 Lập trình mạng ToDateTime object, String ToString Object, bool, char, sbyte, byte, short, ushort, int, uint, long, ulong, float, double, decimal, Decimal, DateTime ToBase64String byte[] Byte[]FromBase64String String ToBase64CharArray byte[] Byte[]FromInt64CharArray char[] Tuần tự hóa đối tượng để truyền qua Socket Phiển desktop NET Framework cho phép hóa hầu hết kiểu đối tượng thành mảng byte, để gửi qua socket Các đối tượng phức tạp, người phát triển thực thi giao diện ISerializable, với mã (serialize) hồi phục (deserialize) đối tượng liệu .NET Compact Framework không hỗ trợ chức Lớp DataSet lớp tự hóa Thông thường lớp DataSet sử dụng sở liệu quan hệ nhớ Nó ý tưởng cho đệm liệu nhỏ dựa vào máy chủ xa trì cấu trúc quan hệ liệu DataSet lưu trữ tất kiểu liệu NET Compact Framework Sử dụng gói UDP gói TCP Như đề cập, có hai kiểu gói tin thường sử dụng để truyền tin mạng Kiểu chung nhất, gói TCP phải chọn cho gần tất trường hợp đảm bảo liệu đến không bị hư hỏng ngược lại trả lại tín hiệu lỗi có vấn đề mà sửa chữa Gói tin UDP hữu ích cho ứng dụng dòng thời gian thực Gói tin UDP khác gói tin TCP cách mà chúng kết nối, giao thức TCP giao thức hướng kết nối, điều có nghĩa cần kết nối với socket máy tính xa trước gửi nhận liệu socket Giao thức kết nối không yêu cầu kết nối thiết lập trước có gắn gửi nhận liệu Nếu lắng nghe rên địa IP cổng nơi mà gói UDP gửi, sau gói tin đơn giản bị Cách đơn giản đển làm việc với gói UDP sử dụng lớp UdpClient, lớp NET Compact Framework hỗ trợ Lớp UdpClient cho phép lập trình viên gửi byte tới nhóm xa UdpClient cho phép người phát triển nhận byte từ nhóm xa từ người cố gắng gửi liệu tới cổng mà UdpClient lắng nghe Quan tâm đến cấu trúc phương thức UdpClient sử dụng sau: 8/15 Lập trình mạng - void Connect(String hostname, Int32 port) Thiết lập kết nối tới máy tính có địa IP tương ứng tên máy chủ (hostname) số hiệu cổng (port) Sau sử dụng phương thức Send(Byte[] dgram, Int32 bytes) gửi liệu đến vị trí phân kết nối Phương thức trả kiểu void khái niệm kết nối thành công sử dụng gói UDP Phương thức đơn tạo để gửi liệu tới địa IP số hiệu cổng - void Connect(IPAddress addr, Int32 port) Giống phương thức trước, ngoại trừ cho phép bạn máy tính xa IPAddress port Đoạn mã ví dụ: l_UdpClient.Connect(IPAddress.Parse("172.68.25.34"), 9999) - void Connect(IPEndpoint endPoint) Kết nối với máy xa cách endPoint - Int32 Send(Byte[] dgram, Int32 bytes, IPEndPoint endPoint) Gửi tất bytes đệm dgram tới máy tính có địa IP cổng endPoint - Send(Byte[] dgram, Int32 bytes, String hostname, Int32 port) Gửi tất bytes đệm dgram tới máy tính có địa IP tương ứng với hostname cổng, đoạn mã ví dụ sau: Send(aBuffer, aBuffer.Length, "www.mycomputer.net", 9999) Phương thức trả số byte gửi - Send(Byte[] dgram, Int32 bytes) Gửi tổng số byte đệm tới máy chủ xa đươc phương thức kết nối Để sử dụng thành phần nạp chồng, trước tiền phải gọi Connect, UdpClient biết nơi gửi gói UDP Phương thức trả số byte gửi - Receive(ref IPEndPoint remoteEP) Đợi để nhận liệu từ EndPoint Chúng ta tạo EndPoint tham chiếu đến địa IP cổng, thiết lập EndPoint để nhận liệu từ địa IP port EndPoint cập nhật sau liệu nhận cho biết nơi liệu đến Viết mã cho UdpClient Đoạn mã mô tả cách thiết lập UdpClient, sau gửi gói tin UDP tới máy tính có địa IP 192.168.0.200, cổng 8888 Chú ý thông qua gọi phương thức UdpClient.Connect() UdpClient biết nơi gửi gói tin UDP UdpClient.Send() gọi, kết nối liên tục IPEndPoint senderIP Convert.ToInt32(8888)); = new IPEndPoint(IPAddress.Parse("192.168.0.200"), 9/15 Lập trình mạng UdpClient l_UdpClient = new UdpClient(); l_UdpClient.Connect(senderIP); for (int i = 0; i < 20; i++) { l_UdpClient.Send(Encoding.ASCII.GetBytes("Hello_UDP_1"), Encoding.ASCII.GetBytes("Hello_UDP_1").Length); System.Threading.Thread.Sleep(1000); } l_UdpClient.Close(); Sau đoạn mã tạo vòng lặp Mỗi lần lặp khối lặp lắng nghe cổng 8888 đến nhận gói tin từ địa IP IPEndPoint listenerIP = new IPEndPoint(IPAddress.Any, 8888); UdpClient listener = new UdpClient(listenerIP); for (int i = 0; i < Convert.ToInt16(this.txtMaxPackets.Text); i++) { // Now receive the three datagrams from the listener IPEndPoint receivedIPInfo = new IPEndPoint(IPAddress.Any, 0); byte[] data = listener.Receive(ref receivedIPInfo); this.textBox1.Text += ("GOT: " + Encoding.ASCII.GetString(data, 0, data.Length) + " FROM: " + receivedIPInfo.ToString()); } 10/15 Lập trình mạng Mục đích lớp UDPClient dùng cho lập trình với giao thức UDP, với giao thức hai bên không cần phải thiết lập kết nối trước gửi mức độ tin cậy không cao Để đảm bảo độ tin cậy ứng dụng mạng, người ta dùng giao thức khác, gọi giao thức có kết nối : TCP (Transport Control Protocol) Trên Internet chủ yếu dùng loại giao thức này, ví dụ Telnet, HTTP, SMTP, POP3… Để lập trình theo giao thức TCP, MS.NET cung cấp hai lớp có tên TCPClient TCPListener Các thành viên lớp TCPClient Constructor Method Name Description TcpClient () Tạo đối tượng TcpClient Chưa đặt thông số gỡ TcpClient (IPEndPoint) Tạo TcpClient gắn cho nú EndPoint cục (Gán địa máy cục số hiệu cổng để sử dụng trao đổi thông tin sau) TcpClient (RemoteHost: String, RemotePort: Int32) Tạo đối tượng TcpClient kết nối đến máy có địa số hiệu cổng truyền vào RemoteHost địa IP chuẩn tên máy Public Properties (see also Protected Properties ) Name Description Available Cho biết số byte nhận từ mạng cú sẵn để đọc Client Trả Socket ứng với TCPClient hành Connected Trạng thái cho biết kết nối đến Server hay chưa ? Public Methods (see also Protected Methods ) Các phương thức lớp TCPClient Name Description Close Giải phóng đối tượng TcpClient không đóng kết nối Connect (RemoteHost, Kết nối đến máy TCP khác có Tên số hiệu cổng RemotePort) 11/15 Lập trình mạng GetStream Trả NetworkStream để từ giúp ta gửi hay nhận liệu (Thường làm tham số tạo StreamReader StreamWriter để gửi nhận liệu dạng xâu ký tự) Khi gắn vào StreamReader StreamWriter thỡ ta cú thể gửi nhận liệu thụng qua cỏc phương thức Readline, writeline tương ứng lớp Từ thành viên lớp TCPClient ta thấy rằng, việc kết nối thực gửi nhận đơn giản Theo trình tự sau: B1: Tạo đối tượng TCPClient B2: Kết nối đến máy chủ (Server) dùng phương thức Connect B3: Tạo đối tượng StreamReader (Receive)và StreamWriter (Send) "nối" với GetStream TCPClient B4: - Dùng đối tượng StreamWriter.Writeline/write vừa tạo để gửi liệu - Dùng đối tượng StreamReader.Readline/Read vừa tạo để đọc liệu B5: Đóng kết nối *** Nếu muốn gửi/nhận liệu mức byte (nhị phân) sử dụng NetworkStream (truyền GetStream cho NetworkStream) TCPListerner lớp cho phép người lập trình xây dựng ứng dụng Server (Ví dụ SMTP Server, FTP Server, DNS Server, POP3 Server hay server tự định nghĩa ….) Ứng dụng server khác với ứng dụng Client chỗ luôn thực lắng nghe chấp nhận kết nối đến từ Client Các thành viên lớp TCPListerner Các thành viên lớp TCPListerner Constructor method Name Description TcpListener (Port: Int32) Tạo TcpListener lắng nghe cổng định TcpListener (IPEndPoint) Tạo TcpListener với giỏ trị Endpoint truyền vào TcpListener (IPAddress, Port: Int32) Tạo TcpListener lắng nghe kết nối đến địa IP cổng định 12/15 Lập trình mạng Public Methods (see also Protected Methods ) Các phương thức lớp TCPListerner Name Description AcceptSocket Chấp nhận yêu cầu kết nối chờ AcceptTcpClient Chấp nhận yêu cầu kết nối chờ (Ứng dụng dừng lệnh có kết nối đến – “Blocking”) Pending Cho biết liệu có kết nối chờ đợi không ? (True = có) Start Bắt đầu lắng nghe yêu cầu kết nối Stop Dừng việc nghe Ứng dụng lập trình mạng Thi trắc nghiệm – Hình thức E-Learning Khái niệm E-Learning nhằm đến phương pháp đào tạo, học tập, soạn giáo án, soạn đề thi tổ chức thi thông qua hệ thống mạng máy tính Đặc điểm phương pháp không cần tổ chức lớp học tập trung, giảng trực quan sinh động Chỉ với máy tính nối mạng, học viên gặp “thầy giáo” lúc Với đời E-Learning, phương pháp dạy học truyền thống không chiếm ưu tuyệt đối dần bộc lộ mặt hạn chế Trong giáo dục nói chung hoạt động giảng dạy nói riêng, phương pháp kiểm tra, đánh giá thi trắc nghiệm có ưu điểm vượt trội số nội dung môn học yêu cầu đánh giá khách quan so với phương pháp kiểm tra đánh giá truyền thống Việc áp dụng thi trắc nghiệm để đảm bảo tính khách quan cấp học thu hút ý nhiều người Ở nước phát triển, việc áp dụng thi trắc nghiệm quan tâm phát triển mức Ở Việt Nam năm gần đây, phần mềm phục vụ E-Learning xuất ngày nhiều Tuy nhiên, hệ thống phần mềm thi trắc nghiệm nhiều hạn chế Các phần mềm có thị trường chủ yếu chạy máy đơn, việc soạn câu hỏi, tạo đề thi nhiều bất cập chưa đễ dàng, thuận tiện cho giáo viên Thị trường dang có phần mềm thi trắc nghiệm mạng LAN, phần mềm cứng nhắc, vai trò giáo viên không đề cao Cụ thể không thêm 13/15 Lập trình mạng môn học, không quan tâm tới việc lưu trữ câu hỏi để tạo ngân hàng câu hỏi cho giáo viên khác tham khảo học sinh dùng để tự kiểm tra kiến thức Hình thức thi trắc nghiệm Theo nghĩa chữ Hán, "trắc" có nghĩa "đo lường", "nghiệm" "suy xét", "chứng thực" Trắc nghiệm xuất từ kỉ 19, nhà khoa học người Mỹ nghĩ nhằm thủ đánh giá trí thông minh người Sau đó, hai nhà tâm lý họcngười Pháp soạn giáo án trắc nghiệm Lợi ích trắc nghiệm: • • • • • Khảo sát số lượng lớn thí sinh Kết nhanh Điểm số đáng tin cậy Công bằng, xác, vô tư Ngăn ngừa "học tủ" Hạn chế trắc nghiệm • Thí sinh có khuynh hướng đoán mò đáp án (Độ may rủi: xác suất thí sinh đoán mò làm đúng) • Không thấy rõ diễn biến tư thí sinh • Khó soạn đề tốn công sức • Theo quan điểm nhiều người, việc áp dụng thi trắc nghiệm kỳ thi tuyển sinh Đại học Việt Nam không thích hợp tình hình Về sâu sa, thi trắc nghiệm thực có hiệu cần sàng lọc cấp thấp tri thức Các loại hình thi trắc nghiệm • Lựa chọn: Gồm hai phần: Phần gốc câu hỏi hay câu bỏ lửng Phần trả lời: bao gồm từ bốn đến sáu phương án có phương án tối ưu, phương án lại "mồi nhử" Độ may rủi: 25% • Ghép hợp: Chia làm hai phần: Phần 1: Nội dung kiểm tra Phần 2: Các câu trả lời có liên hệ đến phần (nhưng bị xáo trộn vị trí) Khi làm bài, thí sinh phải ghép hai phần thành cặp cho Độ may rủi: Gọi n số câu hỏi có phần 1, m số phương án trả lời phần (thông thường m gấp 2, lần n), quy tắc xác suất: độ may rủi=n!/m! (rất thấp) 14/15 Lập trình mạng Điền vào chỗ trống: Là câu hỏi hay câu phát biểu có chừa trống, thí sinh tự điền vào từ cụm từ phù hợp Độ may rủi: So sánh phương pháp trắc nghiệm với phương pháp luận đề • Một câu hỏi luận đề đòi hỏi thí sinh phải tự suy nghĩ câu trả lời diễn đạt ngôn ngữ riêng thân, câu hỏi trắc nghiệm buộc thí sinh phải chọn câu • Một luận đề có câu hỏi thí sinh phải diễn đạt lời lẽ dài dòng, trắc nghiệm có nhiều câu hỏi đòi hỏi trả lời ngắn gọn • Làm luận đề cần nhiều thời gian để suy nghĩ diễn đạt, làm trắc nghiệm thời gian cần để đọc suy nghĩ • Chất lượng luận đề phụ thuộc vào kỹ người chấm bài, chất lượng trắc nghiệm phụ thuộc vào kỹ người đề • Một đề luận đề tương đối dễ soạn khó chấm điểm, trắc nghiệm khó soạn dễ chấm điểm • Với luận đề, thí sinh tự bộc lộ suy nghĩ cá nhân, người chấm tự cho điểm theo xu hướng riêng; trắc nghiệm chứng tỏ kiến thức thông qua tỉ lệ câu trả lời đúng, người đề tự bộc lộ kiến thức thông qua việc đặt câu hỏi Một trắc nghiệm cho phép khuyến khích "phỏng đoán" đáp án, luận đề cho phép sử dụng ngôn từ hoa mỹ, khó có chứng để "lừa phỉnh" đáp án Chúng ta xây dựng hệ thống thi trắc nghiệm mạng LAN, ứng dụng công cụ lập trình mạng NET 15/15 [...].. .Lập trình mạng Mục đích của lớp UDPClient ở trên là dùng cho lập trình với giao thức UDP, với giao thức này thì hai bên không cần phải thiết lập kết nối trước khi gửi do vậy mức độ tin cậy không cao Để đảm bảo độ tin cậy trong các ứng dụng mạng, người ta còn dùng một giao thức khác, gọi là giao thức có kết nối : TCP (Transport... cầu kết nối Stop Dừng việc nghe Ứng dụng lập trình mạng Thi trắc nghiệm – Hình thức E-Learning Khái niệm E-Learning nhằm chỉ đến phương pháp đào tạo, học tập, soạn giáo án, soạn đề thi và tổ chức thi thông qua hệ thống mạng máy tính Đặc điểm của phương pháp này là không cần tổ chức lớp học tập trung, bài giảng trực quan sinh động Chỉ với một máy tính được nối mạng, học viên có thể gặp “thầy giáo” bất... từ mạng và cú sẵn để đọc Client Trả về Socket ứng với TCPClient hiện hành Connected Trạng thái cho biết đó kết nối được đến Server hay chưa ? Public Methods (see also Protected Methods ) Các phương thức của lớp TCPClient Name Description Close Giải phóng đối tượng TcpClient nhưng không đóng kết nối Connect (RemoteHost, Kết nối đến một máy TCP khác có Tên và số hiệu cổng RemotePort) 11/15 Lập trình mạng. .. câu hỏi, tạo đề thi còn nhiều bất cập và chưa đễ dàng, thuận tiện cho giáo viên Thị trường cũng dang có phần mềm thi trắc nghiệm trên mạng LAN, nhưng những phần mềm này còn khá cứng nhắc, vai trò của giáo viên không được đề cao Cụ thể như không thêm được 13/15 Lập trình mạng môn học, không quan tâm tới việc lưu trữ các câu hỏi để tạo ngân hàng câu hỏi cho các giáo viên khác tham khảo và học sinh dùng... khích sự "phỏng đoán" đáp án, nhưng một bài luận đề cho phép sử dụng ngôn từ hoa mỹ, khó có bằng chứng để "lừa phỉnh" đáp án Chúng ta có thể xây dựng hệ thống thi trắc nghiệm trên mạng LAN, ứng dụng công cụ của lập trình mạng trên NET 15/15 ... từng cặp sao cho đúng nhất Độ may rủi: Gọi n là số câu hỏi có ở phần 1, m là số phương án trả lời ở phần 2 (thông thường thì m gấp 2, 3 lần n), quy tắc xác suất: độ may rủi=n!/m! (rất thấp) 14/15 Lập trình mạng Điền vào chỗ trống: Là một câu hỏi hay một câu phát biểu có chừa trống, thí sinh tự điền vào từ và cụm từ phù hợp Độ may rủi: không có So sánh phương pháp trắc nghiệm với phương pháp luận đề... TcpListener (IPEndPoint) Tạo một TcpListener với giỏ trị Endpoint truyền vào TcpListener (IPAddress, Port: Int32) Tạo một TcpListener và lắng nghe các kết nối đến tại địa chỉ IP và cổng chỉ định 12/15 Lập trình mạng Public Methods (see also Protected Methods ) Các phương thức của lớp TCPListerner Name Description AcceptSocket Chấp nhận một yêu cầu kết nối đang chờ AcceptTcpClient Chấp nhận một yêu cầu kết... tạo ở trên để đọc dữ liệu về B5: Đóng kết nối *** Nếu muốn gửi/nhận dữ liệu ở mức byte (nhị phân) thì sử dụng NetworkStream (truyền GetStream cho NetworkStream) TCPListerner là một lớp cho phép người lập trình có thể xây dựng các ứng dụng Server (Ví dụ như SMTP Server, FTP Server, DNS Server, POP3 Server hay server tự định nghĩa ….) Ứng dụng server khác với ứng dụng Client ở chỗ nó luôn luôn thực hiện... dụng mạng, người ta còn dùng một giao thức khác, gọi là giao thức có kết nối : TCP (Transport Control Protocol) Trên Internet chủ yếu là dùng loại giao thức này, ví dụ như Telnet, HTTP, SMTP, POP3… Để lập trình theo giao thức TCP, MS.NET cung cấp hai lớp có tên là TCPClient và TCPListener Các thành viên của lớp TCPClient Constructor Method Name Description TcpClient () Tạo một đối tượng TcpClient Chưa... và nhận dữ liệu thụng qua cỏc phương thức Readline, writeline tương ứng của các lớp này Từ các thành viên của lớp TCPClient ở trên ta thấy rằng, việc kết nối và thực hiện gửi nhận rất đơn giản Theo các trình tự sau: B1: Tạo một đối tượng TCPClient B2: Kết nối đến máy chủ (Server) dùng phương thức Connect B3: Tạo 2 đối tượng StreamReader (Receive)và StreamWriter (Send) và "nối" với GetStream của TCPClient ... receivedIPInfo.ToString()); } 10/15 Lập trình mạng Mục đích lớp UDPClient dùng cho lập trình với giao thức UDP, với giao thức hai bên không cần phải thiết lập kết nối trước gửi mức độ tin cậy... trước * Liên lạc chế độ kết nối (TCP): Có đường kết nối ảo thành lập tiến trình, truớc kết nối thành lập tiến trình phải đợi tiến trình yêu cầu kết nối, sử dụng theo mô hình kết nối Client/Server... 3/15 Lập trình mạng Chúng ta thu kết nối socket từ máy tính xa cách đảm nhiệm máy chủ Khi thiết bị máy chủ, đợi nhận kết nối từ máy khách Để tạo kết nối để thiết bị máy chủ, phải thiết lập socket

Ngày đăng: 31/12/2015, 14:52

Mục lục

  • Lập trình mạng trong .NET

    • Giới thiệu về Socket

    • Tuần tự hóa đối tượng để truyền qua Socket

    • Sử dụng gói UDP và gói TCP

    • Ứng dụng lập trình mạng

      • Thi trắc nghiệm – Hình thức E-Learning

      • Hình thức thi trắc nghiệm

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

  • Đang cập nhật ...

Tài liệu liên quan