1. Trang chủ
  2. » Luận Văn - Báo Cáo

Sử dụng lập trình socket xây dựng chương trình chat lan

106 8 0

Đ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

Nội dung

004.6 TRƯỜNG ĐẠI HỌC VINH KHOA ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Đề tài: SỬ DỤNG LẬP TRÌNH SOCKET – XÂY DỰNG CHƯƠNG TRÌNH CHÁT LAN SV thực hiện: LÊ ANH TUẤN GV hướng dẫn: ThS ĐẶNG THÁI SƠN Lớp:51K2 - ĐTVT Khóa học: 2010 – 2015 NGHỆ AN - 01/2015 TRƯỜNG ĐẠI HỌC VINH BẢN NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Lê Anh Tuấn Mssv: 1051080525 Ngành: Điện Tử Viễn Thơng Niên Khóa: 2010 - 2015 Giảng viên hướng dẫn: ThS Đặng Thái Sơn Cán phản biện: Ks Đinh Văn Nam Nội dung thiết kế tốt nghiệp: Nhận xét cán phản biện: Ngày tháng năm Cán phản biện ( Ký, ghi rõ họ tên ) ii MỤC LỤC MỞ ĐẦU I TÓM TẮT ĐỒ ÁN II DANH MỤC BẢNG BIỂU .III DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ IV CHƯƠNG 1.TỔNG QUAN VỀ LẬP TRÌNH MẠNG 1.1 Mơ hình tham chiếu OSI 1.2 Giao thức TCP/IP 1.3 Mơ hình truyền thơng cấu trúc mạng .6 1.3.1 Nguyên tắc truyền thông .6 1.3.2 Nguyên tắc phương pháp phân tầng .6 1.4 Địa IP – Các địa IP dành riêng 1.5 Giao thức truyền file .9 1.5.1 Khái niệm giao thức FTP 1.5.2 Đặc điểm nguyên lý hoạt động .10 1.5.3 Thiết lập kênh điều khiển chứng thực người dùng FTP 13 1.5.4 Quản lý kênh dữ liệu FTP .14 1.5.5 Các phương thức truyền dữ liệu FTP 18 1.6 Phân loại số mạng thông dụng .19 1.6.1 Mạng LAN 19 1.6.2 Mạng WAN 28 1.6.3 Mạng Internet 30 1.7 Lập trình mạng với sockets 32 1.7.1 Socket 32 1.7.2 Lập trình mạng với UDP socket 35 1.7.3 Ưu, nhược điểm giao thức UDP 37 1.8 Mô hình Client/ Server 38 1.8.1 Tổng quan 38 iii 1.8.2 Giao thức cho ứng dụng Client/Server 44 CHƯƠNG LẬP TRÌNH C# CĂN BẢN VÀ PHẦN MỀM VISUAL STUDIO 2013 47 2.1 Ngơn ngữ lập trình C# 47 2.1.1 Tổng quan C# .47 2.1.2 Các thành phần 47 2.1.3 Kiểu dữ liệu 48 2.1.4 Câu lệnh .49 2.1.5 Các toán tử 53 2.2 Lập trình mạng với C# 55 2.2.1 Lập trình mạng với socket 55 2.2.2 Lập trình với C# socket helper 57 2.3 Giới thiệu phần mềm Visual Studio .61 CHƯƠNG XÂY DỰNG VÀ THIẾT KẾ GIAO DIỆN CHƯƠNG TRÌNH 3.1 Giới thiệu chương trình .64 3.2 Kết nối Client/Server với TCP/IP 64 3.3 Tạo kết nối - Gửi nhận tin 66 3.4 Xây dựng thiết kế chương trình .74 TỔNG KẾT 76 TÀI LIỆU THAM KHẢO 77 PHỤ LỤC 78 iv MỞ ĐẦU Có thể nói phát triển vượt bậc công nghệ thông tin giúp người giải nhiều toán điều quan trọng không đơn giải tốn mà phương pháp để giải tốn cho có hiệu Hầu hết tất ứng dụng trình duyệt web, yahoo, teamviewer, … sử dụng socket để truyền nhận dữ liệu Đối với máy tính nối mạng đánh địa IP định Tương tự vậy socket xem địa chương trình Nên việc sử dụng soket để truyền nhận dữ liệu khó tránh khỏi.Trong nước ta vấn đề nhiều người quan tâm sử dụng rộng rãi Mục đích đồ án là: Tìm hiểu q trình giao tiếp giữa máy tính không sử dụng mạng, việc trao đổi dữ liệu giữa máy hay đơn giản q trình nói chuyện địi hỏi người lập trình phải nắm rõ nguyên tắc truyền tải dữ liệu, qua trình xây dựng phần mềm cần có yếu tố hay sử dụng công cụ hỗ trợ nào? Từ người lập trình bắt tay vào xây dựng chương trình Để thực đề tài chúng tơi thực nhiệm vụ sau: Tìm hiểu mạng LAN, thành phần cấu tạo nên mạng LAN; Tìm hiểu tổng quan lập trình mạng, sau vào phần lập trình socket giao thức TCP/IP; Tìm hiểu ngơn ngữ lập trình C#, Lập trình socket C# Với đề tài “Sử dụng lập trình socket - Xây dựng chương trìnhchat LAN” mong giúp người hiểu hơn, nắm vững kiến thức IP, TCP, Socket đặc biệt ứng dụng chattrong mạng LAN, mà em trình bày đề tài Nội dung đề tài gồm Chương 1: Tổng quan lập trình mạng Trong chương tìm hiểu cách tổng quan lập trình mạng, giao thức, phương thứ truyền dữ liệu Một số khái niệm liên quan đến lập trình mạng i Chương 2: Lập trình C# phần mềm Visual studio Đồ án sử dụng ngơn ngữ lập trình C# để xây dựng giao diện chương trình nên chương sâu vào tìm hiểu hàm biến vịng lặp ngơn ngữ lập trình C# Ở chương ta vào tìm hiểu phần mêm Visual Studio – Một cơng cụ hỗ trợ đắc lực cho việc lập trình Chương 3: Xây dựng thiết kế chương trình Trong chương này, ta xây dựng giao diện chương trình, xây dựng hàm hồn thiện chương trình Khác phục số lỗi định mắc phải trình làm Do hạn chế thời gian lực nên chắn khơng thể tránh khỏi những thiếu sót Em kính mong nhận thơng cảm góp ý thầy giáo, cô giáo bạn để đồ án hoàn chỉnh Xin chân thành cảm ơn ThS Đặng Thái Sơn giúp em thực tốt đồ án Xin chân thành cảm ơn thầy giáo, cô giáo khoa Điện tử Viễn thông giảng dạy, giúp đỡ em hồn thành chương trình ðào tạo Sinh viên thực Lê Anh Tuấn ii TÓM TẮT Đồ án vào tìm hiểu trình giao tiếp giữa máy tính với nhau, cách thức truyền tải đoạn text, hình ảnh hay file dữ liệu giữa chúng cùng mạng LAN Qua phần xây dựng cshương trình chat mà đáp ứng số yêu cầu tối thiểu người sử dụng Trong đồ án trình bày ngơn ngữ lập trình c#, lập trình mạng ngơn ngữ c# phần mềm visual studio ABSRACT The project goes to learn the process of communicating between computers to each other, hows to convey a snippet of text, an image or a data file between them in the same LAN That may be partly built a char program that meets some minimum requirements of users In this thesis also presents the basics of programing languages c#, network programming in languages c# and visual studio software iii DANH MỤC BẢNG BIỂU Bảng 2.1 Bảng hàm thành phần 54 Bảng 2.2 Bảng tham số 56 Bảng 2.3 Bảng trạng thái thread 60 iv DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 1.1 Mơ hình OSI Hình 1.2 Mơ hình TCP/IP Hình 1.3 Mơ hình truyền thơng đơn giản tầng Hình 1.4 Trao đổi giữa tầng Hình 1.5 Các tiến trình mơ hình FTP 12 Hình 1.5 Tiến trình làm việc dạng chủ động FTP 15 Hình 1.6 Tiến trình làm việc dạng bị động FTP 16 Hình 1.8 Kết nối hình 22 Hình Kết nối kiểu bus 22 Hình 1.10 Cáp UTP .23 Hình 1.11 Thiết bị Hub 24 Hình 1.12 Thiết bị Switch 25 Hình 1.13 Thiết bị Router 26 Hình 1.14 Cấu hình mạng LAN 27 Hình 1.15 Các giao thức lập trình Socket 32 Hình 1.16 Dạng thức gói tin UDP 35 Hình 2.1 Giao diện visual studio 2013 62 Hình 2.2 Giao diện tạo form 62 Hình 2.3 Giao diện viết code 62 Hình 3.1 Quá trình kết nối 64 Hình 3.2 Quy trình kết nối 66 Hình 3.3 Tạo server 66 Hình 3.4 Hàm lấy địa IP Server 67 Hình 3.5 IP server 67 Hình 3.6 Hàm khởi tạo socket 68 Hình 3.7 Textbox hiển thị giao diện 68 Hình 3.8 Hàm AcceptCallback 69 Hình 3.9 Hàm startsocket 69 Hình 3.10 Thơng báo Client gửi file 70 v Hình 3.11 Hàm xử lý dữ liệu gửi 71 Hình 3.12 Hàm đóng kết nối Server 71 Hình 3.13 Hàm đóng Socket Sever 72 Hình 3.14 Thơng báo hiển thị lên Client sau Server ngắt kết nối 72 Hình 3.15 Hàm ConnectoServer 73 Hình 3.16 Dao diện Server 74 Hình 3.17 Giao diện Client 74 Hình 3.18 Giao diện tương tác giữa Server Client 74 Hình 3.19 Gửi file powerpoint 75 Hình 3.20 Xem file nhận 75 Hình 3.21 File nhận 75 vi " is not supportedby this control."); } this.rtbMsg.ReadOnly = true; } privatevoidsendImageToolStripMenuItem_Click(object sender, EventArgs e) { SelectImageToSend(); } privatevoidSelectFileToSend() { OpenFileDialog res = newOpenFileDialog(); res.Filter = "All Files|*.*"; if (res.ShowDialog() == DialogResult.OK) { if (!CheckFileSize(res.FileName)) return; AppendText("#SERVER", "Gửi file: " + System.IO.Path.GetFileName(res.FileName)); DEFINE_MSG_DATAmsg = newDEFINE_MSG_DATA(); byte[] byteDATA = System.IO.File.ReadAllBytes(res.FileName); msg.CreateBINARY_DATA("#SERVER", System.IO.Path.GetFileName(res.FileName), byteDATA); _frmMainServer.SendMsgToAllClient(msg); } } privatevoidsendFileToolStripMenuItem_Click(object sender, EventArgs e) { SelectFileToSend(); } privatevoidcloseToolStripMenuItem_Click(object sender, EventArgs e) { 82 this.Hide(); } privatevoidtxtMsg_KeyDown(object sender, KeyEventArgs e) { stringstrText = txtMsg.Text.Trim(); if (strText != ""&&e.KeyCode == Keys.Return) { AppendText("#ME", strText); DEFINE_MSG_DATAmsg = newDEFINE_MSG_DATA(); msg.CreateTEXT_DATA("#SERVER", "TEXT", strText); _frmMainServer.SendMsgToAllClient(msg); txtMsg.Text = ""; } } privatevoidshowDownloadFilesToolStripMenuItem_Click(object sender, EventArgs e) { stringstrDir = System.IO.Path.GetDirectoryName(System.Windows.Forms.Application.Exec utablePath); strDir += "\\Download"; if (!System.IO.Directory.Exists(strDir)) { System.IO.Directory.CreateDirectory(strDir); } System.Diagnostics.Process.Start(strDir); } privatevoidfrmChatServer_FormClosing(object sender, FormClosingEventArgs e) { this.Hide(); 83 e.Cancel = true; } publicvoidSetEnableChat(boolblnEnable) { this.txtMsg.Enabled = blnEnable; } publicboolCheckFileSize(stringstrFileName) { System.IO.FileInfofInfo = newSystem.IO.FileInfo(strFileName); if (fInfo.Length>= 1024 * 1024 * ) { MessageBox.Show("Dung lượng file giớihạn< 5MB"); returnfalse; } returntrue; } } } ServerHelper using System; usingSystem.Collections.Generic; usingSystem.Text; using System.Net; usingSystem.Windows.Forms; usingSystem.Net.Sockets; usingSystem.Threading; usingMessageClassLibrary; namespaceChatServer { classServerHelper { 84 publicfrmChatServer _frmChat; constint MAXBUFFER = 1024; privateSocket _sListener; privateSocketPermission _sPermission; List _lstConnection = newList(); publicServerHelper() { } privatedelegatevoidUpdateUI_InvokeDelegate(stringstrMsg); privatevoidvoidUpdateUI_InvokeDelegate(stringstrMsg) { _frmChat.AppendText("#SERVER", strMsg); } publicboolStartListen(stringstrIpAddress, intintPort) { try { _sPermission = newSocketPermission(NetworkAccess.Accept, TransportType.Tcp, "", SocketPermission.AllPorts); _sListener = null; _sPermission.Demand(); _sListener = newSocket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); _sListener.Bind(newIPEndPoint(IPAddress.Parse(strIpAddress), intPort)); _sListener.Listen(10); AsyncCallbackaCallback = newAsyncCallback(AcceptCallback); _sListener.BeginAccept(aCallback, _sListener); stringstrMsg = "Khởiđộng SERVER vàolúc: " + DateTime.Now.ToString("yyyy/MM/ddhh:mm:ss"); 85 _frmChat.BeginInvoke(newUpdateUI_InvokeDelegate(voidUpdateUI_Invoke Delegate), strMsg); returntrue; } catch (Exception ex) { MessageBox.Show("StartListen Error: " + ex.Message); returnfalse; } } privatevoidAcceptCallback(IAsyncResultar) { Socket listener = null; Socket handler = null; try { listener = (Socket)ar.AsyncState; handler = listener.EndAccept(ar); handler.NoDelay = false; ConnectionHelpernewConnection = newConnectionHelper(handler, _frmChat); if(newConnection.StartSocket()) { _lstConnection.Add(newConnection); } IPEndPointremoteIpEndPoint = handler.RemoteEndPointasIPEndPoint; stringstrMsg = "KếtnốimớitừIp: " + remoteIpEndPoint.Address + ", Port: " + remoteIpEndPoint.Port; 86 _frmChat.BeginInvoke(newUpdateUI_InvokeDelegate(voidUpdateUI_Invoke Delegate), strMsg); AsyncCallbackaCallback = newAsyncCallback(AcceptCallback); listener.BeginAccept(aCallback, listener); } catch (Exception) { } } publicvoidStopListen() { try { _sListener.Close(); _sListener = null; for (int i = 0; _lstConnection.Count> 0;) { DEFINE_MSG_DATAmsg = newDEFINE_MSG_DATA(); msg.CreateTEXT_DATA("#SERVER", "TEXT", ""); _lstConnection[i].SendMsg(msg.GetBytesData()); while (_lstConnection[i]._blnIsSending) { Thread.Sleep(200); } _lstConnection[i].StopSocket(); _lstConnection.RemoveAt(i); } 87 stringstrMsg = "Đóng SERVER vàolúc: " + DateTime.Now.ToString("yyyy/MM/ddhh:mm:ss"); _frmChat.BeginInvoke(newUpdateUI_InvokeDelegate(voidUpdateUI_Invoke Delegate), strMsg); } catch (Exception ex) { MessageBox.Show("StopListen Error: " + ex.Message); } } publicListGetServerAddress() { ListlstIpAddress = newList(); try { IPHostEntry host; host = Dns.GetHostEntry(Dns.GetHostName()); foreach (IPAddressipinhost.AddressList) { if (ip.AddressFamily == AddressFamily.InterNetwork) { lstIpAddress.Add(ip.ToString()); } } } catch (Exception ex) { MessageBox.Show("GetServerAddress Error: " + ex.Message); } returnlstIpAddress; } 88 publicvoidSendMsgToAllClient(byte[] byteDATA ) { for (int i = 0; i < _lstConnection.Count; i++) { _lstConnection[i].SendMsg(byteDATA); } } publicvoidSendMsgToAllClientAnother(stringstrIpAddres, byte[] byteDATA) { for (int i = 0; i < _lstConnection.Count; i++) { if (_lstConnection[i]._strClientIp != strIpAddres) _lstConnection[i].SendMsg(byteDATA); } } publicvoidDisconnectFromClient(stringstrIpAddres, byte[] byteDATA) { int j = -1; for (int i = 0; i < _lstConnection.Count; i++) { if (_lstConnection[i]._strClientIp != strIpAddres) _lstConnection[i].SendMsg(byteDATA); else { j = i; } } if(j != -1) { _lstConnection[j].StopSocket(); _lstConnection.RemoveAt(j); 89 } } } } Client using System; usingSystem.Collections.Generic; usingSystem.ComponentModel; usingSystem.Data; usingSystem.Drawing; usingSystem.Text; usingSystem.Windows.Forms; namespaceChatClient { publicpartialclassfrmChatClient :Form { int _intX = 0; int _intY = 0; publicfrmMainClient _frmMainClient; publicfrmChatClient() { InitializeComponent(); } publicvoidMoveLocation(intintX, intintY) { _intX = intX; _intY = intY; this.Location = newPoint(_intX, _intY); } privatevoidfrmChatClient_Load(object sender, EventArgs e) { 90 this.Location = newPoint(_intX, _intY); } publicvoidAppendText(stringstrFrom, stringstrText) { int start = this.rtbMsg.TextLength; this.rtbMsg.AppendText(strFrom); int end = this.rtbMsg.TextLength; this.rtbMsg.Select(start, end - start); { if(strFrom == "#SERVER") this.rtbMsg.SelectionColor = Color.Red; elseif(strFrom == "#ME") this.rtbMsg.SelectionColor = Color.Yellow; else this.rtbMsg.SelectionColor = Color.Blue; } this.rtbMsg.SelectionFont = newFont("Microsoft Sans Serif", 9, FontStyle.Underline); this.rtbMsg.SelectionLength = 0; stringstrContent = ": " + strText + "\n"; start = this.rtbMsg.TextLength; this.rtbMsg.AppendText(strContent); end = this.rtbMsg.TextLength; this.rtbMsg.Select(start, end - start); this.rtbMsg.SelectionColor = Color.Black; this.rtbMsg.SelectionFont = newFont("Microsoft Sans Serif", 9, FontStyle.Regular); this.rtbMsg.SelectionLength = 0; this.rtbMsg.Select(this.rtbMsg.Text.Length - 1, 0); this.rtbMsg.ScrollToCaret(); } 91 publicvoidAppendImage(stringstrFrom, byte[] byteImage) { BitmapmyBitmap = BINARY_CONVERT.BytesToBitmap(byteImage); Clipboard.SetDataObject(myBitmap); DataFormats.FormatmyFormat = DataFormats.GetFormat(DataFormats.Bitmap); this.rtbMsg.ReadOnly = false; if (this.rtbMsg.CanPaste(myFormat)) { AppendText(strFrom, ""); this.rtbMsg.Paste(myFormat); } else { MessageBox.Show("The data format that you attempted site" + " is not supportedby this control."); } this.rtbMsg.ReadOnly = true; } publicvoidAppendFileDownload(stringstrFrom, stringstrFileName, byte[] byteFileData) { stringstrDir = System.IO.Path.GetDirectoryName(System.Windows.Forms.Application.Exec utablePath); strDir += "\\Download"; if (!System.IO.Directory.Exists(strDir)) { System.IO.Directory.CreateDirectory(strDir); 92 } System.IO.File.WriteAllBytes(strDir + "\\" + strFileName, byteFileData); AppendText("#FILE", " Đãnhận file: " + strFileName + " từ " + strFrom + "\nVào menu CHAT -> Show Download Files đểxem!!!"); } privatevoidSelectImageToSend() { OpenFileDialog res = newOpenFileDialog(); res.Filter = "Image Files|*.jpg;*.jpeg;*.png;*.gif;*.tif; "; if (res.ShowDialog() == DialogResult.OK) { if (!CheckFileSize(res.FileName)) return; InsertImage(res.FileName); } } publicvoidInsertImage(stringstrFileName) { BitmapmyBitmap = newBitmap(strFileName); Clipboard.SetDataObject(myBitmap); DataFormats.FormatmyFormat = DataFormats.GetFormat (DataFormats.Bitmap); this.rtbMsg.ReadOnly = false; if(this.rtbMsg.CanPaste(myFormat)) { AppendText("#ME", ""); this.rtbMsg.Paste(myFormat); DEFINE_MSG_DATAmsg = newDEFINE_MSG_DATA(); byte[] byteDATA = System.IO.File.ReadAllBytes(strFileName); msg.CreateBINARY_DATA("#CLIENT", "IMAGE", byteDATA); _frmMainClient.SendMsgToServer(msg); } else { 93 MessageBox.Show("The data format that you attempted site" + " is not supportedby this control."); } this.rtbMsg.ReadOnly = true; } privatevoidsendImageToolStripMenuItem_Click(object sender, EventArgs e) { SelectImageToSend(); } privatevoidSelectFileToSend() { OpenFileDialog res = newOpenFileDialog(); res.Filter = "All Files|*.*"; if (res.ShowDialog() == DialogResult.OK) { if (!CheckFileSize(res.FileName)) return; AppendText("#ME", "Gửi file: " + System.IO.Path.GetFileName(res.FileName)); DEFINE_MSG_DATAmsg = newDEFINE_MSG_DATA(); byte[] byteDATA = System.IO.File.ReadAllBytes(res.FileName); msg.CreateBINARY_DATA("#CLIENT", System.IO.Path.GetFileName(res.FileName), byteDATA); _frmMainClient.SendMsgToServer(msg); } } privatevoidsendFileToolStripMenuItem_Click(object sender, EventArgs e) { SelectFileToSend(); } privatevoidcloseToolStripMenuItem_Click(object sender, EventArgs e) { 94 this.Hide(); } privatevoidtxtMsg_KeyDown(object sender, KeyEventArgs e) { stringstrText = txtMsg.Text.Trim(); if (strText != ""&&e.KeyCode == Keys.Return) { AppendText("#ME", strText); DEFINE_MSG_DATAmsg = newDEFINE_MSG_DATA(); msg.CreateTEXT_DATA("#CLIENT", "TEXT", strText); _frmMainClient.SendMsgToServer(msg); txtMsg.Text = ""; } } privatevoidshowDownloadToolStripMenuItem_Click(object sender, EventArgs e) { stringstrDir = System.IO.Path.GetDirectoryName(System.Windows.Forms.Application.Exec utablePath); strDir += "\\Download"; if (!System.IO.Directory.Exists(strDir)) { System.IO.Directory.CreateDirectory(strDir); } System.Diagnostics.Process.Start(strDir); } privatevoidfrmChatClient_FormClosing(object sender, FormClosingEventArgs e) { this.Hide(); 95 e.Cancel = true; } publicvoidSetEnableChat(boolblnEnable) { this.txtMsg.Enabled = blnEnable; } publicvoidDisconnectFromServer() { _frmMainClient.Disconnect(); } publicboolCheckFileSize(stringstrFileName) { System.IO.FileInfofInfo = newSystem.IO.FileInfo(strFileName); if (fInfo.Length>= 1024 * 1024 * 5) { MessageBox.Show("Dung lượng file giớihạn< 5MB"); returnfalse; } returntrue; } } } 96 ... cho việc lập trình Chương 3: Xây dựng thiết kế chương trình Trong chương này, ta xây dựng giao diện chương trình, xây dựng hàm hồn thiện chương trình Khác phục số lỗi định mắc phải trình làm Do... mạng LAN; Tìm hiểu tổng quan lập trình mạng, sau vào phần lập trình socket giao thức TCP/IP; Tìm hiểu ngơn ngữ lập trình C#, Lập trình socket C# Với đề tài ? ?Sử dụng lập trình socket - Xây dựng. .. chương trìnhchat LAN? ?? mong giúp người hiểu hơn, nắm vững kiến thức IP, TCP, Socket đặc biệt ứng dụng chattrong mạng LAN, mà em trình bày đề tài Nội dung đề tài gồm Chương 1: Tổng quan lập trình

Ngày đăng: 25/08/2021, 15:40

HÌNH ẢNH LIÊN QUAN

Hình 1.2. Mô hình TCP/IP. - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 1.2. Mô hình TCP/IP (Trang 14)
Hình 1.3. Mô hình truyền thông đơngiản Trong kiến trúc phân tầng, một số mô hình được phát triển:  - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 1.3. Mô hình truyền thông đơngiản Trong kiến trúc phân tầng, một số mô hình được phát triển: (Trang 17)
Hình 1.4.Trao đổi giữa các tầng. - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 1.4. Trao đổi giữa các tầng (Trang 18)
Dưới đây là hình đối chiếu các tiến trình vào trong mô hình FTP: - Sử dụng lập trình socket   xây dựng chương trình chat lan
i đây là hình đối chiếu các tiến trình vào trong mô hình FTP: (Trang 22)
Hình 1.6. Tiến trình làmviệc dạng chủ động trong FTP - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 1.6. Tiến trình làmviệc dạng chủ động trong FTP (Trang 25)
Hình 1.7. Tiến trình làmviệc dạng bị động trong FTP - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 1.7. Tiến trình làmviệc dạng bị động trong FTP (Trang 26)
Hình 1.8. Kếtnối hình sao - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 1.8. Kếtnối hình sao (Trang 32)
- Mạng hình sao: - Sử dụng lập trình socket   xây dựng chương trình chat lan
ng hình sao: (Trang 32)
Hình 1.13.Thiết bị Router - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 1.13. Thiết bị Router (Trang 36)
tắnh chất và phạm vi sửdụng mà người thiết kế xây dựng lên cấu hình mạng LAN thắch hợp - Sử dụng lập trình socket   xây dựng chương trình chat lan
t ắnh chất và phạm vi sửdụng mà người thiết kế xây dựng lên cấu hình mạng LAN thắch hợp (Trang 37)
Hình 1.15.Các giao thức trong lập trình Socket. - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 1.15. Các giao thức trong lập trình Socket (Trang 42)
Bảng 2.2. Bảng các tham số - Sử dụng lập trình socket   xây dựng chương trình chat lan
Bảng 2.2. Bảng các tham số (Trang 66)
Các hằng đó được định nghĩa trong namespaceSystem.Threading. Bảng sau liệt kê những trạng thái có thể có của một thread trong hệ điều hành Windows - Sử dụng lập trình socket   xây dựng chương trình chat lan
c hằng đó được định nghĩa trong namespaceSystem.Threading. Bảng sau liệt kê những trạng thái có thể có của một thread trong hệ điều hành Windows (Trang 70)
Hình 2.1. Giao diện visual studio 2013 - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 2.1. Giao diện visual studio 2013 (Trang 72)
Hình 3.1.Quá trình kết nối. - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.1. Quá trình kết nối (Trang 74)
Quy trình này có thể được minh họa theo mô hình sau: - Sử dụng lập trình socket   xây dựng chương trình chat lan
uy trình này có thể được minh họa theo mô hình sau: (Trang 76)
Hình 3.4. Hàm lấy địa chỉ IP của Server IP của Server được hiển thị trên giao diện:  - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.4. Hàm lấy địa chỉ IP của Server IP của Server được hiển thị trên giao diện: (Trang 77)
Hình 3.5. IP server Hàm khởi tạo socket và bắt đầu tiếp nhận kết nối  - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.5. IP server Hàm khởi tạo socket và bắt đầu tiếp nhận kết nối (Trang 77)
Hình 3.7. Textbox hiển thị trên giao diện Hàm AcceptCallback được gọi khi có một kết nối mới từ Client  - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.7. Textbox hiển thị trên giao diện Hàm AcceptCallback được gọi khi có một kết nối mới từ Client (Trang 78)
Hình 3.6. Hàm khởi tạo socket - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.6. Hàm khởi tạo socket (Trang 78)
Hình 3.9. Hàm startsocket Xử lý dữ liệu nhận được:  - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.9. Hàm startsocket Xử lý dữ liệu nhận được: (Trang 79)
Xử lý update dữ liệu nhận được lên màn hình dao diện - Sử dụng lập trình socket   xây dựng chương trình chat lan
l ý update dữ liệu nhận được lên màn hình dao diện (Trang 80)
Hình 3.11. Hàm xử lý dữ liệu gửi đi Hàm đóng kết nối Server  - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.11. Hàm xử lý dữ liệu gửi đi Hàm đóng kết nối Server (Trang 81)
Hình 3.12. Hàm đóng kếtnối Server Hàm đóng Socket Sever dùng để lắng nghe  - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.12. Hàm đóng kếtnối Server Hàm đóng Socket Sever dùng để lắng nghe (Trang 81)
Hình 3.14. Thông báo hiển thị lên Client sau khi Server ngắt kếtnối Tạo Client Ờ Kết nối, gửi và nhận dữ liệu  - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.14. Thông báo hiển thị lên Client sau khi Server ngắt kếtnối Tạo Client Ờ Kết nối, gửi và nhận dữ liệu (Trang 82)
Hình 3.15. Hàm ConnectoServer - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.15. Hàm ConnectoServer (Trang 83)
Hình 3.17. Giao diện Client Gửi và nhận dữ liệu giữa Server và Client  - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.17. Giao diện Client Gửi và nhận dữ liệu giữa Server và Client (Trang 84)
Hình 3.16. Dao diện Server Client  - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.16. Dao diện Server Client (Trang 84)
Một số hình ảnh quá trình truyền tải dữ liệu giữa Client và Server Send một file   - Sử dụng lập trình socket   xây dựng chương trình chat lan
t số hình ảnh quá trình truyền tải dữ liệu giữa Client và Server Send một file (Trang 85)
Hình 3.19. Gửi 1 file powerpoint - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.19. Gửi 1 file powerpoint (Trang 85)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w