![Phân tích tư tưởng của nhân dân qua đoạn thơ: Những người vợ nhớ chồng… Những cuộc đời đã hóa sông núi ta trong Đất nước của Nguyễn Khoa Điềm](https://timtailieu.net/upload/document/136415/phan-tich-tu-tuong-cua-nhan-dan-qua-doan-tho-039-039-nhung-nguoi-vo-nho-chong-nhung-cuoc-doi-da-hoa-song-nui-ta-039-039-trong-dat-nuoc-cua-nguyen-khoa-136415.jpg)
Chương: Lập trình Socket
Số trang: 62
Loại file: doc
Dung lượng: 298.50 KB
Lượt xem: 16
Lượt tải: 0
Xem trước 6 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Tài liệu Chương: Lập trình Socket hướng dẫn các bạn cách lập trình Socket. Tài liệu nhằm nâng cao khả năng lập trình máy tính của các bạn. Tài liệu hữu ích với các bạn chuyên nganh Công nghệ Thông tin và các bạn quan tâm tới lĩnh vực lập trình.
Nội dung trích xuất từ tài liệu:
Chương: Lập trình Socket Ch¬ng ... LËp tr×nh SocketI. C¸c kiÕn thøc liªn quanTríc khi b¾t ®Çu häc bµi nµy c¸c b¹n cÇn ®äc l¹i c¸c kiÕn thøc liªn quansau:- Giao thøc, yªu cÇu tèi thiÓu c¸c b¹n ph¶i n¾m ®îc 3 giao thøc : IP, TPC,UDP- C¸ch ®¸nh ®Þa chØ IP, ®Þa chØ d¹ng tªn miÒn, giao thøc chuyÓn ®æi®Þa chØ IP thµnh ®Þa chØ tªn miÒn, vµ ngîc l¹i- Mét sè ®Þa chØ ®Æc biÖt: ®Þa chØ lÆp, ®Þa chØ broadcash,multicash…- Cæng giao thøc- Ph©n biÖt ®îc sù kh¸c nhau, gièng nhau gi÷a 2 giao thøc TCP vµ UDP1. Giíi thiÖu Socket Socket lµ mét giao diÖn lËp tr×nh øng (API - Application ProgramInterface) dông m¹ng, th«ng qua giao diÖn nµy ta cã thÓ lËp tr×nh ®iÒukhiÓn viÖc truyÒn th«ng gi÷a 2 m¸y sö dông c¸c giao thøc møc thÊp nhTCP, UDP…, Socket lµ mét sù trõu tîng ho¸ ë møc cao, cã thÓ tëng tîng,nã nh lµ mét thiÕt bÞ truyÒn th«ng 2 chiÒu t¬ng tù nh tÖp tin, chóng tagöi/ nhËn d÷ liÖu gi÷a 2 m¸y, t¬ng tù nh viÖc ®äc/ ghi trªn tÖp tin. §Ó liªn l¹c th«ng qua Socket, ta cÇn tiÕn hµnh c¸c thao t¸c:- T¹o lËp hay më mét Socket+ G¾n mét Socket víi mét ®Þa chØ, ®Þa chØ nµy chÝnh lµ ®Þa chØ cñam¸y mµ nã cÇn liªn l¹c+ Thùc hiÖn viÖc liªn l¹c, cã 2 kiÓu liªn l¹c tuú thuéc vµo chÕ ®é kÕt nèi:a) liªn l¹c trong chÕ ®é kh«ng kÕt nèi: Hai tiÕn tr×nh liªn l¹c víi nhau kh«ng kÕt nèi trùc tiÕpmçi th«ng ®iÖp göi ®i ph¶i kÌm theo ®Þa chØ cña ngêi nhËnH×nh thøc liªn l¹c nµy cã ®Æc ®iÓm:ngêi göi kh«ng ch¾c ch¾n th«ng ®iÖp cña hä cã ®Õn tay ngêi nhËnkh«ngmét th«ng ®iÖp cã thÓ göi nhiÒu lÇnth«ng ®iÖp göi sau cã thÓ ®Õn ®Ých tríc th«ng ®iÖp göi tríc ®ãb) liªn l¹c trong chÕ ®é kÕt nèi: Cã mét ®êng kÕt nèi “¶o” ®îc thµnh lËp gi÷a 2 tiÕn tr×nh, tríc khimét kÕt nèi ®îc thµnh lËp th× mét trong 2 tiÕn tr×nh ph¶i ®îi tiÕn tr×nh kiayªu cÇu kÕt nèi, cã thÓ sö dông Socket ®Ó liªn l¹c theo m« h×nhClient/Server. Trong m« h×nh nµy server sö dông lêi gäi listen vµ accept®Ó l¾ng nghe vµ chÊp nhËn mét yªu cÇu kÕt nèi2. LËp tr×nh Socket trong java Java cung cËp mét sè líp cho phÐp c¸c øng dông m¹ng cã thÓ trao®æi víi nhau qua c¬ chÕ Socket, cô thÓ líp Socket cung cÊp cho ta c¬chÕ liªn l¹c trong chÕ ®é kÕt nèi (sö dông giao thøc TCP) vµ lípDatagramSocket cho phÐp c¸c øng dông m¹ng liªn l¹c víi nhau trong chÕ®é kh«ng kÕt nèi (sö dông giao thøc UDP), tÊt c¶ c¸c líp liªn quan ®ÕnviÖc lËp tr×nh Socket ®îc java nhãm l¹i vµ ®Ó trong gãi java.netII. Kh¶o s¸t mét sè líp trong gãi java.net1. líp InetAddress Mçi mét m¸y khi tham gia truyÒn th«ng cÇn ph¶i cã mét ®Þnh danh,®Þnh danh nµy ph¶i lµ duy nhÊt, ®Þnh danh nµy ®îc thÓ hiÖn b»ng ®ÞachØ IP hoÆc ®Þa chØ díi d¹ng tªn miÒn. Líp InetAddress biÓu thÞ chomét ®Þa chØ cña mét m¸y nµo ®ã, khi ta muèn liªn l¹c víi mét m¸y ë xa, taph¶i biÕt ®îc ®Þa chØ IP cña m¸y ë xa, tuy nhiªn ®Þa chØ IP th× rÊt khãnhí, ®«i khi ta kh«ng thÓ biÕt chÝnh x¸c ®Þa chØ IP cña m¸y ®ã, bëi v×nhiÒu nguyªn nh©n kh¸c nhau nh: m¸y ®ã khëi ®éng tõ xa hoÆc ®îc nèivµo nhµ cung cÊp dÞch vô Internet, do vËy mçi lÇn kÕt nèi vµo nhµ cungcÊp dÞch vô ISP ta l¹i cã 1 ®Þa chØ IP kh¸c nhau. VËy thÕ th× lµm thÕnµo ®Ó ta cã thÓ liªn l¹c víi m¸y ë xa khi ta chØ biÕt ®Þa chØ m¸y ®ã d íid¹ng tªn miÒn?, c©u tr¶ lêi lµ líp InetAddress ®· lµm ®iÒu ®ã cho ta, lípnµy tù ®éng chuyÓn ®Þa chØ d¹ng tªn miÒn thµnh ®Þa chØ IP vµ ngîc l¹i.Líp InetAddress cung cÊp mét sè ph¬ng thøc tÜnh (static) dïng ®ÓchuyÓn ®æi dÞa chØ díi d¹ng tªn miÒn thµnh ®Þa chØ IP vµ ngîc l¹i. Cãmét sè ph¬ng thøc sau mµ b¹n cÇn quan t©m:Ph¬ng ph¸p M« t¶Public void equals( Object obj) So s¸nh 2 ®èi tîngPublic byte[] getAddress() LÊy vÒ ®Þa chØ IP díi d¹ng m¶ng bytepublic static InetAddress[] Tr¶ vÒ m¶ng ®èi tînggetAllByName(String host) InetAddress, v× mét m¸y cã thÓ throws cã nhiÒu ®Þa chØ IP (do cãUnknownHostException nhiÒu card m¹ng), nªn ph¬ng thøc nµy tr¶ vÒ mét m¶ng chøa tÊt c¶ c¸c ®Þa chØ t¬ng øng víi tªn miÒn.public static InetAddress Tr¶ l¹i ®èi tîng InetAddress cã tªngetByName(String host) ®îc chØ ra, tªn nµy lµ mét x©u kÝ throws tù díi d¹ng tªn miÒn hoÆc ®ÞaUnknownHostException chØ IPpublic String getHostAddress() Tr¶ vÒ ®Þa chØ IP cña m¸y chñpublic String getHostName() Tr¶ vÒ tªn cña m¸y chñpublic static InetAddress Tr¶ vÒ ®èi tîng InetAddress kÕtgetLocalHost() hîp víi chÝnh m¸y ®ã throwsUnknownHostExceptionpublic boolean KiÓm tra xem ®Þa chØ nµy cãisMulticastAddress() ph¶i lµ ®Þa chØ Multicast kh«ngChó ý: - Trong gãi java.net cßn líp Inet4Address vµ líp Inet6Address hai líp nµy thÓ hiÖn cho c¸c ®Þa chØ IP version 4 vµ IP version 6, nã gåm tÊt c¶ c¸c thµnh phÇn cña líp InetAddress - Ta cÇn thªm mÖnh ®Ò import líp java.net.InetAddress tríc khi cã thÓ sö dông nã. - Ph¬ng thøc getByName sÏ cã g¾ng ph©n gi¶i tªn miÒn thµnh ®Þa chØ IP t¬ng øng b»ng c¸ch: Tríc tiªn nã ®i t×m trong cache, nÕu kh«ng t×m thÊy nã t×m tiÕp trong tÖp host, nÕu vÉn kh«ng t×m thÊy nã sÏ cè g¾ng kÕt nèi ®Õn m¸y chñ DNS ®Ó yªu cÇu ph©n gi¶i tªn nµy thµnh ®Þa chØ IP, nÕu kh«ng thÓ ph©n gi¶i ®îc tªn nµy th× nã sÏ sinh ra mét ngo¹i lÖ UnknownHostException, thÕ nªn b¹n cÇn ®Æt chóng vµo mét khèi try ..catch.VÝ dô 1: Minh ho¹ c¸ch sö dông c¸c ph¬ng thøc getByName ®Ó t¹o ra métInetAddressimport java.net.*;class InetAddress1 { public static void main(String[] args) { try { InetAddress address =InetAddress.getByName(www.theht.edu.vn); System.out.println(address); } catch (UnknownHostException ex) { ...
Nội dung trích xuất từ tài liệu:
Chương: Lập trình Socket Ch¬ng ... LËp tr×nh SocketI. C¸c kiÕn thøc liªn quanTríc khi b¾t ®Çu häc bµi nµy c¸c b¹n cÇn ®äc l¹i c¸c kiÕn thøc liªn quansau:- Giao thøc, yªu cÇu tèi thiÓu c¸c b¹n ph¶i n¾m ®îc 3 giao thøc : IP, TPC,UDP- C¸ch ®¸nh ®Þa chØ IP, ®Þa chØ d¹ng tªn miÒn, giao thøc chuyÓn ®æi®Þa chØ IP thµnh ®Þa chØ tªn miÒn, vµ ngîc l¹i- Mét sè ®Þa chØ ®Æc biÖt: ®Þa chØ lÆp, ®Þa chØ broadcash,multicash…- Cæng giao thøc- Ph©n biÖt ®îc sù kh¸c nhau, gièng nhau gi÷a 2 giao thøc TCP vµ UDP1. Giíi thiÖu Socket Socket lµ mét giao diÖn lËp tr×nh øng (API - Application ProgramInterface) dông m¹ng, th«ng qua giao diÖn nµy ta cã thÓ lËp tr×nh ®iÒukhiÓn viÖc truyÒn th«ng gi÷a 2 m¸y sö dông c¸c giao thøc møc thÊp nhTCP, UDP…, Socket lµ mét sù trõu tîng ho¸ ë møc cao, cã thÓ tëng tîng,nã nh lµ mét thiÕt bÞ truyÒn th«ng 2 chiÒu t¬ng tù nh tÖp tin, chóng tagöi/ nhËn d÷ liÖu gi÷a 2 m¸y, t¬ng tù nh viÖc ®äc/ ghi trªn tÖp tin. §Ó liªn l¹c th«ng qua Socket, ta cÇn tiÕn hµnh c¸c thao t¸c:- T¹o lËp hay më mét Socket+ G¾n mét Socket víi mét ®Þa chØ, ®Þa chØ nµy chÝnh lµ ®Þa chØ cñam¸y mµ nã cÇn liªn l¹c+ Thùc hiÖn viÖc liªn l¹c, cã 2 kiÓu liªn l¹c tuú thuéc vµo chÕ ®é kÕt nèi:a) liªn l¹c trong chÕ ®é kh«ng kÕt nèi: Hai tiÕn tr×nh liªn l¹c víi nhau kh«ng kÕt nèi trùc tiÕpmçi th«ng ®iÖp göi ®i ph¶i kÌm theo ®Þa chØ cña ngêi nhËnH×nh thøc liªn l¹c nµy cã ®Æc ®iÓm:ngêi göi kh«ng ch¾c ch¾n th«ng ®iÖp cña hä cã ®Õn tay ngêi nhËnkh«ngmét th«ng ®iÖp cã thÓ göi nhiÒu lÇnth«ng ®iÖp göi sau cã thÓ ®Õn ®Ých tríc th«ng ®iÖp göi tríc ®ãb) liªn l¹c trong chÕ ®é kÕt nèi: Cã mét ®êng kÕt nèi “¶o” ®îc thµnh lËp gi÷a 2 tiÕn tr×nh, tríc khimét kÕt nèi ®îc thµnh lËp th× mét trong 2 tiÕn tr×nh ph¶i ®îi tiÕn tr×nh kiayªu cÇu kÕt nèi, cã thÓ sö dông Socket ®Ó liªn l¹c theo m« h×nhClient/Server. Trong m« h×nh nµy server sö dông lêi gäi listen vµ accept®Ó l¾ng nghe vµ chÊp nhËn mét yªu cÇu kÕt nèi2. LËp tr×nh Socket trong java Java cung cËp mét sè líp cho phÐp c¸c øng dông m¹ng cã thÓ trao®æi víi nhau qua c¬ chÕ Socket, cô thÓ líp Socket cung cÊp cho ta c¬chÕ liªn l¹c trong chÕ ®é kÕt nèi (sö dông giao thøc TCP) vµ lípDatagramSocket cho phÐp c¸c øng dông m¹ng liªn l¹c víi nhau trong chÕ®é kh«ng kÕt nèi (sö dông giao thøc UDP), tÊt c¶ c¸c líp liªn quan ®ÕnviÖc lËp tr×nh Socket ®îc java nhãm l¹i vµ ®Ó trong gãi java.netII. Kh¶o s¸t mét sè líp trong gãi java.net1. líp InetAddress Mçi mét m¸y khi tham gia truyÒn th«ng cÇn ph¶i cã mét ®Þnh danh,®Þnh danh nµy ph¶i lµ duy nhÊt, ®Þnh danh nµy ®îc thÓ hiÖn b»ng ®ÞachØ IP hoÆc ®Þa chØ díi d¹ng tªn miÒn. Líp InetAddress biÓu thÞ chomét ®Þa chØ cña mét m¸y nµo ®ã, khi ta muèn liªn l¹c víi mét m¸y ë xa, taph¶i biÕt ®îc ®Þa chØ IP cña m¸y ë xa, tuy nhiªn ®Þa chØ IP th× rÊt khãnhí, ®«i khi ta kh«ng thÓ biÕt chÝnh x¸c ®Þa chØ IP cña m¸y ®ã, bëi v×nhiÒu nguyªn nh©n kh¸c nhau nh: m¸y ®ã khëi ®éng tõ xa hoÆc ®îc nèivµo nhµ cung cÊp dÞch vô Internet, do vËy mçi lÇn kÕt nèi vµo nhµ cungcÊp dÞch vô ISP ta l¹i cã 1 ®Þa chØ IP kh¸c nhau. VËy thÕ th× lµm thÕnµo ®Ó ta cã thÓ liªn l¹c víi m¸y ë xa khi ta chØ biÕt ®Þa chØ m¸y ®ã d íid¹ng tªn miÒn?, c©u tr¶ lêi lµ líp InetAddress ®· lµm ®iÒu ®ã cho ta, lípnµy tù ®éng chuyÓn ®Þa chØ d¹ng tªn miÒn thµnh ®Þa chØ IP vµ ngîc l¹i.Líp InetAddress cung cÊp mét sè ph¬ng thøc tÜnh (static) dïng ®ÓchuyÓn ®æi dÞa chØ díi d¹ng tªn miÒn thµnh ®Þa chØ IP vµ ngîc l¹i. Cãmét sè ph¬ng thøc sau mµ b¹n cÇn quan t©m:Ph¬ng ph¸p M« t¶Public void equals( Object obj) So s¸nh 2 ®èi tîngPublic byte[] getAddress() LÊy vÒ ®Þa chØ IP díi d¹ng m¶ng bytepublic static InetAddress[] Tr¶ vÒ m¶ng ®èi tînggetAllByName(String host) InetAddress, v× mét m¸y cã thÓ throws cã nhiÒu ®Þa chØ IP (do cãUnknownHostException nhiÒu card m¹ng), nªn ph¬ng thøc nµy tr¶ vÒ mét m¶ng chøa tÊt c¶ c¸c ®Þa chØ t¬ng øng víi tªn miÒn.public static InetAddress Tr¶ l¹i ®èi tîng InetAddress cã tªngetByName(String host) ®îc chØ ra, tªn nµy lµ mét x©u kÝ throws tù díi d¹ng tªn miÒn hoÆc ®ÞaUnknownHostException chØ IPpublic String getHostAddress() Tr¶ vÒ ®Þa chØ IP cña m¸y chñpublic String getHostName() Tr¶ vÒ tªn cña m¸y chñpublic static InetAddress Tr¶ vÒ ®èi tîng InetAddress kÕtgetLocalHost() hîp víi chÝnh m¸y ®ã throwsUnknownHostExceptionpublic boolean KiÓm tra xem ®Þa chØ nµy cãisMulticastAddress() ph¶i lµ ®Þa chØ Multicast kh«ngChó ý: - Trong gãi java.net cßn líp Inet4Address vµ líp Inet6Address hai líp nµy thÓ hiÖn cho c¸c ®Þa chØ IP version 4 vµ IP version 6, nã gåm tÊt c¶ c¸c thµnh phÇn cña líp InetAddress - Ta cÇn thªm mÖnh ®Ò import líp java.net.InetAddress tríc khi cã thÓ sö dông nã. - Ph¬ng thøc getByName sÏ cã g¾ng ph©n gi¶i tªn miÒn thµnh ®Þa chØ IP t¬ng øng b»ng c¸ch: Tríc tiªn nã ®i t×m trong cache, nÕu kh«ng t×m thÊy nã t×m tiÕp trong tÖp host, nÕu vÉn kh«ng t×m thÊy nã sÏ cè g¾ng kÕt nèi ®Õn m¸y chñ DNS ®Ó yªu cÇu ph©n gi¶i tªn nµy thµnh ®Þa chØ IP, nÕu kh«ng thÓ ph©n gi¶i ®îc tªn nµy th× nã sÏ sinh ra mét ngo¹i lÖ UnknownHostException, thÕ nªn b¹n cÇn ®Æt chóng vµo mét khèi try ..catch.VÝ dô 1: Minh ho¹ c¸ch sö dông c¸c ph¬ng thøc getByName ®Ó t¹o ra métInetAddressimport java.net.*;class InetAddress1 { public static void main(String[] args) { try { InetAddress address =InetAddress.getByName(www.theht.edu.vn); System.out.println(address); } catch (UnknownHostException ex) { ...
Tìm kiếm theo từ khóa liên quan:
Lập trình Socket Giao diện Socket Ứng dụng Socket Lập trình Socket trong java Kỹ thuật lập trình Sử dụng SocketTài liệu liên quan:
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 279 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 223 0 0 -
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 205 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 176 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 156 0 0 -
Tóm tắt Đồ án tốt nghiệp Công nghệ thông tin: Lập trình socket và ứng dụng trong game cờ caro
29 trang 135 0 0 -
Báo cáo thực tập Công nghệ thông tin: Lập trình game trên Unity
27 trang 122 0 0 -
Giáo trình về phân tích thiết kế hệ thống thông tin
113 trang 114 0 0 -
LUẬN VĂN: Tìm hiểu kỹ thuật tạo bóng cứng trong đồ họa 3D
41 trang 110 0 0 -
Bài giảng Kỹ thuật lập trình - Chương 10: Tổng kết môn học (Trường Đại học Bách khoa Hà Nội)
67 trang 108 0 0