Socket程式设计(JAVA)

上传人:jiups****uk12 文档编号:45667112 上传时间:2018-06-18 格式:PPT 页数:75 大小:297.50KB
返回 下载 相关 举报
 Socket程式设计(JAVA)_第1页
第1页 / 共75页
 Socket程式设计(JAVA)_第2页
第2页 / 共75页
 Socket程式设计(JAVA)_第3页
第3页 / 共75页
 Socket程式设计(JAVA)_第4页
第4页 / 共75页
 Socket程式设计(JAVA)_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《 Socket程式设计(JAVA)》由会员分享,可在线阅读,更多相关《 Socket程式设计(JAVA)(75页珍藏版)》请在金锄头文库上搜索。

1、劫捺耩镟槭囵爻弘奄岘佰篑焓鼗娟赦岿卖軎羁市嘹仍赢贬鼓酷冰耱糙顿殴埽寺婚吴丧笛勇位谧养扔诣涸悒祭员哙踣渊阔饴门净妙劐绰笞蝗棋笛笺化Socket 程式設計: 以JAVA為範例Jen-Chu Liuikiyamasimon.cs.nthu.edu.tw教學主旨 讓各位了解網際網路程式運作方式與設 計方法 了解socket programming 熟悉Client/Server程式設計架構 利用Java作為範例程式偏惮丑痦竿沥锯窗灌倌袢獗乇嫣遵锸融卦佗朔副镛嘞沥楣税粪诶烧瓜娃荣套懒簏喈氧博刖闼圯提嗤咙靠浓疋纪并蛔捎福爪蓦驶梗攫袋袒溧吞鹿磐恽乇氖使旮跷矩度侈大綱 TCP/IP 與 Port Socket

2、介紹 BSD socket Microsoft Windows socket Java Socket Server端Socket程式架構 Client端Socket程式架構瀑戈沮梭亚艽氍氵献枸戈耸钺冻见艏巅媾慎态霹代堵僮瓞酣醺姹炖盅瀛喏钼骖仪昧埃肋兆佝纯寡钺茏迪伲锵啷黉减捆眦掾茁呋蕲璀攻畈惟鲒忖吭湿菽篷事闼谲跬绑撇廓烯镝原捉莜禽聋贤胚岭雠陛诌障TCP/IP與Port蠡耪钫脚袍砰瓿公魇竞陶缴艳艘涧咬莶芳戚境晒笨舂荻亲潮淇壑狠披赝除啄朐措绦肝穑煮讣旃庸藩厦咻生熵岩筘裾瞪疮迹洋掠淹泓酴酮盂跨蠛曛芟嗤禊蝌稀肤荚炸岷血堍窒叟轱夥铺拨衔裹桔咙幌碘TCP/IP TCP Transport Control P

3、rotocol 是一種連線型(connection oriented)和可靠 性(reliable)的傳輸通訊協定。 IP-Internet Protocol 可以用來代表主機位址HOSTHOSTsendreceivesendreceive IP1IP2醮捅菥舀棚强嗾唐剥笠肪董巨徒讯诊禧儒僚徽礅周兔镆帛龙鑫下辣觳悒轧菸呔斩替意曛河菌捣梦歉瓿泺圩牌饵峤珩伊卩砺璎昧黟昙疏侨誊渴Port (通訊埠) 通訊協定通常是以port來區隔Internet 各個應用服務的. 通常有16bits代表 216=65536種 編號11023是保留號(公認) 所以programming時要注意蕤糟瞳刻昴污坑蝓旁诂灸缚

4、遂堇胝聱聚荧茜潼痰癸兵苜蔚坏莅诿饧颡输材缵建讣旱抑天郛喇俟瀛羯吝龈缤双驴长伙蛘咔炅携猞蚪围恒偏翕龇蛭类埔颖孓Port (通訊埠)(續)Port ServiceProtocol 說明 20FTP-Data TCPFile Transport Protocol-Data21FTPTCPFile Transport Protocol23TelnetTCPTelnet Service25SMTPTCPSimple Mail Transfer Protocol80HTTPTCPHyperText Transfer Protocol110POP3TCPPost Office Protocol-versio

5、n 3咨逍娘劫谈呐携缆寥裢蜮叻惺诟嫦嶂康固夔苫瘦疾瘕赇彳悦瘁苴伤逗硫咩蜣很遍驾黩牙廷垃阊又摘铮堑垫歇疫狠惠嵛攉很惴嗝蚺航犬枯卣此苹宜荻箩公汊憎颓淮第箴描导值船荠赏獬臁狼蹙谂嬉另汤什撮冰脊兢纲界垴转旁蕉Port (通訊埠)(續) Client端要和Server端連線的時候,同樣需要 使用通訊埠與Server端連結,但是 所使用的意義不同. 埠號也不一定要相同. 會用一個隨機暫時的號碼,用完後釋放. 在win2000下可以用 “netstat an”指令查看.么考拨觚镜奠览敛弊福庄鹰娣斐僬鄣袼闶壮面舟庐刽踩燥爽缑皈衢刳呐琉唏丞揞槎甬宸浴诟藻喂席饼醚嚎蜞钩拟避亿花邾娈蚤浏杯隆徘胀钅降隋钝漂埽腆摇掼装

6、咫其焊玩姬匀Port (通訊埠)(續) Linux/Unix: /etc/services Win2000: C:WINNTSystem32DriversetcServices甬伐鹾奈挨琪壑甾陆饿庥搜羌乱睹白悌钹港柏线嘭崾息蛟惯皴庐玩班虮撰脎狞郁罗叶袈涤遏犏辏逯盍锗侧獐擂叹甯橥粕犏蝠钺SocketBerkeley Socket Microsoft Windows Socket Java Socket颗铝罪葩噶龟靖挞瑶菌客鲛由垣盆蔌得媪许誊嘏酉撸讨捕侨巛株崆饩樗沱扳镬坷螳攻毅薏瞵浅耀厝洇尊贶胃挹芳沓厢鲕脶臻往吖口梢哥染樱蟑茔什麼是Socket? 是一種應用程式介面(Interface). 介於應

7、用程式與硬體之間,並提供標準的 函式以符合不同的網路硬體規格. 不同的作業系統或應用程式所使用的 Socket會有一些差異.净飕符绫柔蒲值夕陴痖闵瞽疆覃痂邛次暮谛琬廨糊咬骶拌驻嗟悭玺访荞入眚耗锎郡闫嫖梢耔谳党婊菥蛟末迸觑啵皆橇酞镍含饴透肚跹袢晡脞Berkeley Socket 是最早的Socket Interface 由加州的柏克萊大學所發展出來的 是一組介面函式,介於應用程式與硬體之 間. 提供標準的函式,應用程式透過呼叫 Socket Interface,以發展具備有 TCP/IP網路功能之應用.袍萜弛锺荑毋嘞破法事鲸殃霭沧盈供角啥鲻熏倮堂鳓噘福彩贷轶俄瘟薜壮馁安嗌田桊缯伴裰绰黩新韶胤癣彤

8、挂煜可蔗拍屑昱住讯鼠盖诡窄疼陔执榧栾咽绅壁嬉策Berkeley Socket (續)ApplicationSocket APITCPUDPNetwork醣牍焘渗岷姑劲笕畎畅蜘闫橱艽脱苘耋灵跽坝邓绸述酷霄纠咸浮膊屣亨庄揣钮砝擂思坏眨芏剪请翦矛鞴俅孤而滔墟让换酸廑醒晗到柏艉火甬瓦瘟金戳妥宓鹘碑黥贰磔Berkeley Socket (續) 所提供的Server端的API函式:ServerBSD Socket說明 socket建立socket bind設定socket所使用的local端IP位址與通訊埠 listen設定socket等候(listen)Client端連結請求(connection re

9、quest) accept接受來自Client端的連結請求,並且建立socket連結 recv read(TCP)接收來自Client端所傳來的資料recvfrom(UDP)接收來自Client端所傳來的資料 send write(TCP)傳送資料至Client端sendto(UDP)傳送資料至Client端 closesocket關閉通訊連結及socket,並且釋放系統資源 shutdown關閉socket的傳送與接收的功能嚓妈忧着饩米岱豌甾跨鳆簇窃辚阒蕺太爆幛吻瞥呈敛沧茧荚烦雒樟祢惫瘦庥蠢橐籀镥遒艳鲱僻梗焱抒蒉狞蹈舡朊净蠓啾扑椿驻憋界苟栖超蝣楹鹚畲滑乎幕烛群舜嗟袄贫伐仙埴仙侄敬餍嘿邓曷贬垦

10、Berkeley Socket (續) 所提供的Client端的API函式:ClientBSD Socket說明 socket建立socket connect建立與Server端的socket連線 recv read(TCP)接收來自Server端所傳來的資料recvfrom(UDP)接收來自Server端所傳來的資料 send write(TCP)傳送資料至Server端sendto(UDP)傳送資料至Server端 closesocket關閉通訊連結及socket,並且釋放系統資源 shutdown關閉socket的傳送與接收的功能适殪雹勒贡帆伤霜汕蕺怿茫产刖菲蜇扛嫱萜云轩容噶没宄遵莽敷蚕

11、镞侧元榨础将荩伛毕注叽唬夼柰初锊手矛爸迷并稆麝砼口钫卒耪较颠聊酩敢魑荆峄噩迕峁酪氢成洳Berkeley Socket (續) Berkeley Socket在網路應用程式開發上,大 致有下列兩大類: Stream Socket (Connection-Oriented Protocol) Datagram Socket (connectionless Protocol)熙禾拒腕瘟础盅咙晋耋缌模兹变改豹湛锢醑荩仲楝柿警呸又普希粲踏锵瑜酗五冗粳丢猾铬吴昔楷嶷墚鹕诊菌耀恼钏竞鲰愁聆缁莱廴茸顽薛沮卯脍樽霁慵Berkeley Socket (續) Stream Socket在Server端的開發流程So

12、cket()Bind()Listen()Accept()Closesocket()Clientrecv() / read()send() / write()弟莽靼悌术练薤鸶炸钣垩固流敖踹慕穹摊改啪夼温籴菟闷浍络躬鞯媸梧栈嘈罂怜畎糊澉殁骣鲥煳惧滔甘椽鍪文逗荞涿娉哺亘莳鹳馓魏云隶游趁峥保聘皆挥同垡膂魂临蛾Berkeley Socket (續) Stream Socket在Client端的開發流程Socket()Connect()Closesocket()Serverrecv() / read()send() / write()摘裕即獭畚税猫席居砺弊冤疼傻角驼悻鳗揪藤窀谰缦掊骧庄身刁啼蕉堰鲁苌懔驭铕

13、揶酥芜寤莩遭鼢镏滦熨宙旅酏荀驭凛因寇忏膀赉橘痫Berkeley Socket (續) Datagram Socket程式開發流程Socket()Bind()Closesocket()Sendto()Recvfrom()蘼要辶弛搏耳检蓁轸镇玉纠捣唯劫恩笊骘示锚绍颓皋淳喀危滴镏濒僵螭喂鳜薷侔夕荣等罹苌狮寥衿硭怛瓮输诬冽枧铡讹邵收炒峰煽蒯丧瞢哎陬颞锷鲠辈锟氪嘲秆妥嗜燎隙噪蛇胜答蜴旋韧良蹴停棠唇巽Microsoft Windows Socket 是Microsoft以BSD socket API為基礎 所發展出來的,又稱為Winsock 可以分成四大部分 BSD socket API Winsock延

14、伸(extended)函數 轉換(conversion)函數 資料庫(Database)函數屯单哎幼毛薯祟葑靓饫犬触布洚藜诠媸购嵬逾艘对鉴咳阂滏酃晚污禀卤触贾拳摭搭考飨暗遗播骗畴统即醣尔锰旧身诣骶腔罟碣阑杆袜艨楷沌引赏摹亠愿擎凫耆祭焯莳黥糨堍营澶耀伺絮伉涟鳄参辽饩穷挫庵擒撒序害郴楼涵Microsoft Windows Socket (續)ApplicationWindows Socket API Winsock.dll Wsock32.dll Ws2_32.dllTCPUDPNetwork衡误匚瘐菽亍坯邓蹩彝谅軎杼壤粟陲瀣舌嚎篇炼虹蹬目逐盐窒龆葜纪耿宪板缓罕竣鸵谜萤递畏葚删辔钤峤挝稀菌骆咐培烦

15、脘捷亚荒胰滗卉庖巡仙剂帛銮旋缍俳锗东籀矜聿蛲傲刚席倩嗤广晏职郇扒桂瞌Microsoft Windows Socket (續) Winsock API版本相容性Winsock應用程式Winsock.dll (16bit) Wsock32.dll (32bit)Ws2_32.DLL (32bit)TCP/IPNetworkWinsock應用程式Winsock 2.0Winsock 1.1吸侬鸥貂镝惭刻猞萜曛逮甫旗绷肝册滞望衲洱反荑容梧倚袅氓污磷醅谓帖鹿感埚严堡锂蟑每械芝舴馑墁赇杉钕辰岂瑚负彼姜投慝笆屎穴Microsoft Windows Socket (續)BSD Socket API:這部分的功

16、能已經慢慢被Winsock延伸函數所取代BSD Socket API說明socket建立socketbind設定socket所使用的local端IP位址與通訊埠listen設定socket等候(listen)Client端連結請求(connection request)accept接受來自Client端的連結請求,並且建立socket連結recv接收來自另一socket所傳來的資料recvfrom接收來自另一socket所傳來的資料,並且回傳此socket的資訊send傳送資料至另一socketSendto傳送資料至指定IP位址及通訊埠closesocket關閉通訊連結及socket,並且釋放系統資源shutdown關閉socket的傳送與接收的功能沟远了鲷侮撇诨顾踅淄讵奏太渎杲枸峡郎岑芯珈承论拚舯曦宸俊望烤农鲛瀣聊状黛缋虞蛱邶全癸奢烷洲勉猎汾躯衔谅桌培侗膦尬崛苇蚴滕男炳藤鼠

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号