cne套接字编程实例udc通信_第1页
cne套接字编程实例udc通信_第2页
cne套接字编程实例udc通信_第3页
cne套接字编程实例udc通信_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C#.net2.0套接字编程实例UDPTCP通信

首先从原理上解释一下采用Socket接口的网络通讯,这里以最常用的C/S模式作为范例,首先,服务端有一个进程(或多个进程)在指定的端口等待客户来连接,服务程序等待客户的连接信息,一旦连接上之后,就可以按设计的数据交换方法和格式进行数据传输。客户端在需要的时刻发出向服务端的连接请求。这里为了便于理解,提到了一些调用及其大致的功能。使用socket调用后,仅产生了一个可以使用的socket描述符,这时还不能进行通信,还要使用其他的调用,以使得socket所指的结构中使用的信息被填写完。在使用TCP协议时,一般服务端进程先使用socket调用得到一个描述符,然后使用bind调用将一个名字与socket描述符连接起来,对于Internet域就是将Internet地址联编到socket。之后,服务端使用listen调用指出等待服务请求队列的长度。然后就可以使用accept调用等待客户端发起连接,一般是阻塞等待连接,一旦有客户端发出连接,accept返回客户的地址信息,并返回一个新的socket描述符,该描述符与原先的socket有相同的特性,这时服务端就可以使用这个新的socket进行读写操作了。一般服务端可能在accept返回后创建一个新的进程进行与客户的通信,父进程则再到accept调用处等待另一个连接。客户端进程一般先使用socket调用得到一个socket描述符,然后使用connect向指定的服务器上的指定端口发起连接,一旦连接成功返回,就说明已经建立了与服务器的连接,这时就可以通过socket描述符进行读写操作了。.NetFrameWork为Socket通讯提供了System.Net.Socket命名空间,在这个命名空间里面有以下几个常用的重要类分别是:·Socket类这个低层的类用于管理连接,WebRequest,TcpClient和UdpClient在内部使用这个类。·NetworkStream类这个类是从Stream派生出来的,它表示来自网络的数据流·TcpClient类允许创建和使用TCP连接·TcpListener类允许监听传入的TCP连接请求·UdpClient类用于UDP客户创建连接(UDP是另外一种TCP协议,但没有得到广泛的使用,主要用于本地网络)下面我们来看一个基于Socket的双机通信代码的C#版本首先创建Socket对象的实例,这可以通过Socket类的构造方法来实现:publicSocket(AddressFamilyaddressFamily,SocketTypesocketType,ProtocolTypeprotocolType);其中,addressFamily参数指定Socket使用的寻址方案,socketType参数指定Socket的类型,protocolType参数指定Socket使用的协议。下面的示例语句创建一个Socket,它可用于在基于TCP/IP的网络(如Internet)上通讯。Sockettemp=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);若要使用UDP而不是TCP,需要更改协议类型,如下面的示例所示:Sockettemp=newSocket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);一旦创建Socket,在客户端,你将可以通过Connect方法连接到指定的服务器(你可以在Connect方法前Bind端口,就是以指定的端口发起连接,如果不事先Bind端口号的话,系统会默认在1024到5000随机绑定一个端口号),并通过Send方法向远程服务器发送数据,而后可以通过Receive从服务端接收数据;而在服务器端,你需要使用Bind方法绑定所指定的接口使Socket与一个本地终结点相联,并通过Listen方法侦听该接口上的请求,当侦听到用户端的连接时,调用Accept完成连接的操作,创建新的Socket以处理传入的连接请求。使用完Socket后,使用Close方法关闭Socket。姓愁可以秀看出摊,以背上许纯多方做法包洽含E粮nd件Po叛in来t类建型的滑参数幼,在辽In乐te牢rn俗et册中,根TC饱P/捆IP茅使弊用一歉个网胡络地俭址和架一个里服务捧端口恨号来径唯一接标识煤设备诊。网寇络地撇址标浓识网夺络上优的特谷定设死备;真端口您号标少识要仍连接污到的壁该设回备上茶的特削定服怒务。拢网络躬地址拌和服闭务端亿口的超组合上称拾为终路结点帽,在止.清NE围T删框架砍中正井是由市E住nd诵Po绸in订t怪类表扶示这偶个终祸结点矿,它基提供谱表示漠网络依资源忠或服状务的隶抽象棕,用浩以标回志网酿络地盲址等尸信息柿。.尾Ne军t同捐时也虹为每塘个受枪支持刊的地衔址族鞠定义叫了咐En勉dP猪oi痰nt事的燕子代搂;对旷于获IP云地芹址族努,该高类为带I辛PE腰nd目Po纳in壤t。甚IP让En威dP裁oi况nt涨类底包含肤应用避程序德连接析到主知机上榴的服吵务所洽需的蛮主机唐和端杀口信侵息,用通过烛组合晓服务支的主蓬机I厦P地商址和踪端口速号,墨IP歪En艇dP陶oi练nt疲类极形成俯到服池务的回连接慈点。掘旧用到刊IP皆En曲dP棋oi王nt转类的疯时候之就不毕可避近免地幻涉及齐到计离算机筒IP围地址高,S双ys域te渐m.亿Ne肺t命奴名空写间中馆有两咬种类顾可以进得到辈IP已地址漆实例歉:哄耳·I全PA阵dd物re歇ss门类:横IP镇Ad冠dr老es箩s混类包则含计滨算机巨在落IP拍网驱络上氏的地疼址。校其P辆ar捆se蓬方法狂可将亏I遇P展地址图字符悬串转债换为仍I壳PA弱dd润re塌ss刚实岂例。划下面芒的语武句创半建一桨个亮IP傻Ad俘dr哪es伐s涛实例德:伤IP秋Ad台dr虹es亲s窑my腊IP佳=普I道PA旧dd通re亮ss遮.P缩ar犬se芳("响19帖2.凝16党8.激0.咸1"王);园高分需要队知道简的是翻:S午oc财ke离t活类支军持两玩种基黎本模辉式:辫同步亮和异罪步。巩其区爹别在件于:观在同书步模慌式中贩,按由块传絮输,垫对执德行网屋络操责作的抓函数稼(如魂S扯en援d字和牲Re缴ce欠iv弃e)沫的调易用一恒直等败到所拉有内昆容传耽送操体作完农成后艇才将毅控制谨返回越给调飘用程例序。码在异猴步模恢式中斤,是旗按位迎传输赴,需乘要指亦定发满送的奖开始谅和结恨束。匀同步决模式述是最隔常用区的变模式奴,我逝们这泄里的案例子慎也是芒使用椒同步售模式河。专箱下面茶看一管个完诉整的通例子推,c喜li津en帐t向辨se她rv嘴er汇发送算一段浴测试呆字符迁串,昨se迷rv稻er犹接收馅并显筑示出芬来,龟给予涝cl探ie链nt饥成功优响应捎。//client端usingSystem;usingSystem.Text;齿us旬in秋g判Sy揪st煎em兵.I雀O;尊us存in现g啦Sy仁st挑em黎.N催et喜;社us野in拖g晴Sy纳st津em欢.N虹et珍.S化oc但ke旨ts杆;喂na烟me不sp击ac杰e寨so革ck敌et赔sa闻mp后le型{郑cl战as唤s鸦Cl含as挣s1挖{滴st晶at统ic丈v辅oi厅d勒Ma加in凳()粮{逝tr话y屈{迈in杜t哭p磁or各t纯=腰20泊00馋;蚕st幕ri唯ng夫h循os蠢t浙=团"1侦27丸.0要.0堆.1纽";砖IP炎Ad振dr她es侦s严ip斩=饮I亦PA案dd极re兴ss体.P育ar动se惧(h窗os序t)辟;臣IP吼En体dP糊oi损nt滨i闸pe酷=歪n抛ew龙I还PE涉nd秤Po盲in狼t(衔ip谈,己po配rt遇);恢//帅把i猴p和蛮端口灶转化赚为I坊PE歌nd奴Po图in挪t实吹例加So补ck圈et令c共=歼n攻ew躺S五oc舅ke旺t(寸Ad矩dr度es奶sF品am拔il材y.台In忧te洪rN马et孤wo躺rk贤,令So筑ck式et凯Ty骡pe斩.S捐tr业ea猜m,伞P盒ro嗓to蕉co暴lT惠yp妖e.吉Tc傅p)僻;/仇/创刘建一颗个S犯oc仍ke校t禁Co咸ns漏ol送e.凝Wr闷it马e夏Li爪ne叮("木Co施nn央et遍in缘g.庙..闭")泽;笑c.竹Co巧nn次ec菠t(计ip筝e)独;/阿/连指接到姻服务郊器壮st愧ri资ng挪s惑en奸dS懂tr伸=贞"惑he置ll撕o!权Th烘is遍i扣s狸a扛so注ck柴et换t犯es歉t"推;少by烦te宽[]缠b棕s扣=节En源co洲di负ng猎.A碰SC旁II笼.G箭et伸By蹦te隆s(狭se除nd愉St包r)童;贤Co艘ns晌ol狼e.侄Wr奔it仪eL盐in殿e(野"S灶en伪d惜Me柿ss箱ag飞e"涝);述c.悠Se从nd蝶(b士s,锄b衔s.伴Le秋ng密th掘,吊0)寸;/竞/发遵送测阶试信郊息刑st龄ri赌ng裁r泡ec倚vS真tr西=馆"陷";钓by凝te柄[]义r堵ec群vB饶yt迅es锅=君n劫ew眨b渡yt炉e[炉10森24箭];陵in堂t脊by彼te涛s;光by驰te哄s竞=蝇c.向Re洗ce送iv奔e(并re冒cv剖By亚te谁s,言r笛ec咏vB骗yt资es天.L倘en枣gt恩h,原0急);脚//漂从服嫩务器光端接算受返责回信巡息表re种cv兼St麻r猫+=化E谜nc舌od折in陕g.离AS羡CI击I.软Ge西tS雨tr悉in讨g(眠re刃cv谢By梳te早s,雅0滴,买by授te球s)抽;惕Co飘ns戴ol门e.恼Wr鞭it何eL久in士e(释"C黎li雷en峡t悠Ge绸t在Me宪ss量ag阶e:法{0兵}"菠,印re撇cv其St淘r)鸡;/寇/显悟示服庸务器险返回工信息徐c.疲Cl精os宅e(搁);供}蒙ca误tc浓h鸭(A视rg羽um狭en顷tN配ul大lE煎xc某ep陷ti逮on控e陆)镇{接Co贞ns随ol肤e.闸Wr恢it晶eL牺in详e(扎"A省rg攻um龙en衔tN宽ul晋lE攻xc眉ep愁ti累on折:径{0辰}"谁,犁e)曲;疏}垦ca妥tc乔h壶(S哄oc富ke甜tE悄xc缓ep旺ti速on泽e驶)足{堡Co跌ns项ol刘e.书Wr庸it缘eL垫in敏e(普"S茎oc延ke当tE陵xc奋ep翼ti出on醒:筐{0劈}"仍,姐e)均;砍}烛Co床ns毯ol捐e.穴Wr君it今eL筹in介e(填"P腰re悉ss芳E落nt掘er蝴t堡o破Ex梯it侨")仇;老Co刑ns阀ol杜e.暴Re消ad桨Li词ne胃()务;跃}差}谁}蝴//惕se营rv谁er午端怜us约in佩g忘Sy位st孙em恐;趣us斑in铁g司Sy按st尖em灰.T淋ex厌t;钻us友in俊g盯Sy尘st铲em吧.I伶O;坡us台in四g张Sy名st冠em社.N甘et佛;廊us渣in丝g名Sy猫st吸em厅.N显et册.S购oc签ke垒ts赔;贡na最me馋sp裕ac侵e分Pr维oj膏ec搜t1邮{拘cl屋as广s泼Cl志as丹s2仅{过st秋at冤ic吧v固oi裹d振Ma器in司()卡{役tr名y聚{靠in逝t稍po画rt逆=驳2虏00扮0;陷st雄ri族ng奖h瓜os斑t掘=屿"1富27把.0穷.0烤.1夕";拦IP咸Ad秆dr当es渠s宁ip齐=以I冲PA溉dd俗re甚ss赖.P丸ar夕se聋(h填os准t)将;票IP忆En药dP题oi毛nt夜i半pe水=渗n贝ew沃I境PE搭nd息Po敬in薄t(根ip狭,设po血rt然);匀So角ck权et渐s欺=摧n异ew喝S帮oc米ke亚t(成Ad巴dr龟es暂sF词am公il罪y.枪In缠te馒rN劳et茄wo妨rk晋,系So鸣ck予et筑Ty挥pe辞.S糖tr握ea哲m,额P屡ro宿to土co酷lT毫yp夕e.糊Tc膨p)乖;/逐/创科建一币个S缴oc寒ke棚t类冈s.京Bi各nd滴(i闸pe王);幼//键绑定深20梦00阅端口形s.提Li怪st娃en售(0狼);市//乱开始脏监听由Co田ns岛ol狡e.絮Wr苹it吹eL草in宇e(择"W劈ai万t含fo真r楚co型nn辅ec河t"能);报So畏ck游et叫t讽em呆p墓=即s.严Ac惩ce棋pt禽()亡;/糟/为讯新建知连接煤创建焰新的暗So态ck北et呀。顾Co悠ns港ol鼠e.微Wr扑it功eL旁in侄e(侵"G药et边a园c盖on荐ne辩ct写")肿;设st油ri便ng从r嫁ec伤vS勤tr新=柜"烛";剑by程te红[]献r雄ec览vB坝yt沙es巧=层n脑ew勾b晚yt欲e[感10勒24戴];龄in辞t挑by卫te炕s;旁by归te弄s碑=笼te毯mp与.R煌ec池ei疤ve刑(r揉ec乖vB歼yt论es项,鞠re机cv米By轻te贪s.悼Le耍ng闸th岛,扰0)携;/誓/从队客户介端接怪受信药息弦re歇cv风St夜r局+=期E党nc育od宿in荐g.欠AS句CI茫I.燃Ge漆tS售tr蚊in斤g(模re君cv滥By政te况s,营0冒,胜by剖te武s)运;蛋Co斩ns丽ol借e.捏Wr敢it努eL靠in晴e(咬"S溜er妹ve兄r缝Ge窄t括Me慢ss缠ag榴e:前{0未}"剥,r油ec弃vS屯tr太);产//决把客久户端字传来棍的信桑息显支示出炭来宾st奶ri香ng水s呢en煤dS耐tr棕=角"茧Ok收!C苦li僚en臭t柱Se晨nd诸M穷es坦sa事ge梦S询uc要es猎sf海ul遮!"浴;搜by渔te扑[]竭b鸟s随=丸En洁co扣di吊ng唉.A妈SC束II雷.G婚et们By雷te夕s(教se黎nd滑St醋r)谜;私te偿mp联.S棵en俩d(农bs极,唐bs资.L绝en百gt茎h,扁0帜);抽//远返回弓客户傻端成相功信泼息栏te裳mp夕.C甩lo扬se军()租;械s.季Cl启os段e(硬);宁}完ca线tc我h纯(A搁rg滥um穗en洞tN钳ul叛lE找xc茂ep警ti横on常e绝)斧{磨Co柄ns射ol尺e.凶Wr探it嘴eL兄in勇e(剂"A产rg塔um男en行tN期ul面lE坡xc段ep正ti键on夏:蹲{0奇}"叶,临e)剑;铃}霜ca衣tc排h逗(S敞oc要ke倾tE要xc免ep岗ti织on惑e贷)死{滤Co趋ns旷ol扔e.工Wr加it而eL防in独e(难"S恼oc便ke元tE三xc垮ep脱ti照on看:湖{0关}"辽,戴e)垃;剖}吵Co堤ns咏ol尾e.蹄Wr默it寸eL冈in绞e(殿"P础re经ss右E瞎nt镇er枕t敞o犯Ex自it巾")杆;化Co劳ns凝ol续e.呀Re芳ad帮Li舒ne办()斤;怎}羽}拔}上面的例子是用的Socket类,System.Net.Socket命名空间还提供了两个抽象高级类TCPClient和UDPClient和用于通讯流处理的NetWorkStream,让我们看下例子客户端TcpClienttcpClient=newTcpCLient(主机IP,端口号);NetworkStreamns=tcp.Client.GetStream();服务端TcpListenertcpListener=newTcpListener(监听端口);tcpListener.Start();TcpClienttcpClient=tcpListener.AcceptTcpClient();NetworkStreamns=tcpClient.GetStream();服务端用TcpListener监听,然后把连接的对象实例化为一个TcpClient,调用TcpClient.GetStream()方法,返回网络流实例化为一个NetworlStream流,下面就是用流的方法进行Send,Receive如果是UdpClient的话,就直接UdpClient实例化,然后调用UdpClient的Send和Receive方法,需要注意的事,UdpClient没有返回网络流的方法,就是说没有GetStream方法,所以无法流化,而且使用Udp通信的时候,不要服务

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论