中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

VB.NET Socket編程的示例分析

發布時間:2021-12-02 11:24:33 來源:億速云 閱讀:420 作者:小新 欄目:編程語言

小編給大家分享一下VB.NET Socket編程的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

下面通過例子來學習VB.NET Socket編程類的應用,下面的程序分別分服務器和客戶端兩部分:

  1. ImportsSystem  

  2. ImportsSystem.Net  

  3. ImportsSystem.Net.Sockets  

  4. ImportsSystem.Text  

  5. ImportsSystem.Threading  

  6. ImportsMicrosoft.VisualBasic  

  7.  

  8. 'Stateobjectforreadingclientdataasynchronously  

  9.  

  10. PublicClassStateObject  

  11. 'Clientsocket.  

  12. PublicworkSocketAsSocket=Nothing 

  13. 'Sizeofreceivebuffer.  

  14. PublicConstBufferSizeAsInteger=1024 

  15. 'Receivebuffer.  

  16. Publicbuffer(BufferSize)AsByte  

  17. 'Receiveddatastring.  

  18. PublicsbAsNewStringBuilder  

  19. EndClass'StateObject  

  20.  

  21.  

  22. PublicClassAsynchronousSocketListener  

  23. 'Threadsignal.  

  24. PublicSharedallDoneAsNewManualResetEvent(False)  

  25.  

  26. 'Thisserverwaitsforaconnectionandthenusesasychronousoperationsto  

  27. 'accepttheconnection,getdatafromtheconnectedclient,  

  28. 'echothatdatabacktotheconnectedclient.  

  29. 'Itthendisconnectsfromtheclientandwaitsforanotherclient.  

  30. PublicSharedSubMain()  

  31. 'Databufferforincomingdata.  

  32. Dimbytes()AsByte=New[Byte](1023){}  

  33.  

  34. 'Establishthelocalendpointforthesocket.  

  35. DimipHostInfoAsIPHostEntry=Dns.Resolve(Dns.GetHostName())  

  36. DimipAddressAsIPAddress=ipHostInfo.AddressList(0)  

  37. DimlocalEndPointAsNewIPEndPoint(ipAddress,11000)  

  38.  

  39. 'CreateaTCP/IPsocket.  

  40. DimlistenerAsNewSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp)  

  41.  

  42. 'Bindthesockettothelocalendpointandlistenforincomingconnections.  

  43. listener.Bind(localEndPoint)  

  44. listener.Listen(100)  

  45.  

  46. WhileTrue  

  47. 'Settheeventtononsignaledstate.  

  48. allDone.Reset()  

  49.  

  50. 'Startanasynchronoussockettolistenforconnections.  

  51. Console.WriteLine("Waitingforaconnection...")  

  52. listener.BeginAccept(NewAsyncCallback(AddressOfAcceptCallback),listener)  

  53.  

  54. 'Waituntilaconnectionismadeandprocessedbeforecontinuing.  

  55. allDone.WaitOne()  

  56. EndWhile  

  57. EndSub'Main  

  58.  

  59.  

  60. PublicSharedSubAcceptCallback(ByValarAsIAsyncResult)  

  61. 'Getthesocketthathandlestheclientrequest.  

  62. DimlistenerAsSocket=CType(ar.AsyncState,Socket)  

  63. 'Endtheoperation.  

  64. DimhandlerAsSocket=listener.EndAccept(ar)  

  65.  

  66. 'Createthestateobjectfortheasyncreceive.  

  67. DimstateAsNewStateObject  

  68. state.workSocket=handler 

  69. handler.BeginReceive(state.buffer,0,StateObject.
    BufferSize,0,NewAsyncCallback(AddressOfReadCallback),state)  

  70. EndSub'AcceptCallback  

  71.  

  72.  

  73. PublicSharedSubReadCallback(ByValarAsIAsyncResult)  

  74. DimcontentAsString=String.Empty  

  75.  

  76. 'Retrievethestateobjectandthehandlersocket  

  77. 'fromtheasynchronousstateobject.  

  78. DimstateAsStateObject=CType(ar.AsyncState,StateObject)  

  79. DimhandlerAsSocket=state.workSocket  

  80.  

  81. 'Readdatafromtheclientsocket.  

  82. DimbytesReadAsInteger=handler.EndReceive(ar)  

  83.  

  84. IfbytesRead>0Then  

  85. 'Theremightbemoredata,sostorethedatareceivedsofar.  

  86. state.sb.Append(Encoding.ASCII.GetString(state.buffer,0,bytesRead))  

  87.  

  88. 'Checkforend-of-filetag.Ifitisnotthere,read  

  89. 'moredata.  

  90. content=state.sb.ToString()  

  91. Ifcontent.IndexOf("<EOF>")>-1Then  

  92. 'Allthedatahasbeenreadfromthe  

  93. 'client.Displayitontheconsole.  

  94. Console.WriteLine("Read{0}bytesfromsocket."+vbLf+"Data:{1}",content.Length,content)  

  95. 'Echothedatabacktotheclient.  

  96. Send(handler,content)  

  97. Else  

  98. 'Notalldatareceived.Getmore.  

  99. handler.BeginReceive(state.buffer,0,StateObject.
    BufferSize,0,NewAsyncCallback(AddressOfReadCallback),state)  

  100. EndIf  

  101. EndIf  

  102. EndSub'ReadCallback  

  103.  

  104. PrivateSharedSubSend(ByValhandlerAsSocket,ByValdataAsString)  

  105. 'ConvertthestringdatatobytedatausingASCIIencoding.  

  106. DimbyteDataAsByte()=Encoding.ASCII.GetBytes(data)  

  107.  

  108. 'Beginsendingthedatatotheremotedevice.  

  109. handler.BeginSend(byteData,0,byteData.
    Length,0,NewAsyncCallback(AddressOfSendCallback),handler)  

  110. EndSub'Send  

  111.  

  112. PrivateSharedSubSendCallback(ByValarAsIAsyncResult)  

  113. 'Retrievethesocketfromthestateobject.  

  114. DimhandlerAsSocket=CType(ar.AsyncState,Socket)  

  115.  

  116. 'Completesendingthedatatotheremotedevice.  

  117. DimbytesSentAsInteger=handler.EndSend(ar)  

  118. Console.WriteLine("Sent{0}bytestoclient.",bytesSent)  

  119.  

  120. handler.Shutdown(SocketShutdown.Both)  

  121. handler.Close()  

  122. 'Signalthemainthreadtocontinue.  

  123. allDone.Set()  

  124. EndSub'SendCallback  

  125. EndClass'AsynchronousSocketListener 

看完了這篇文章,相信你對“VB.NET Socket編程的示例分析”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

繁昌县| 穆棱市| 临沂市| 罗平县| 余庆县| 临沭县| 乐业县| 宁乡县| 灵石县| 施秉县| 大石桥市| 简阳市| 洪江市| 静乐县| 固始县| 太白县| 吉木乃县| 苏尼特左旗| 巢湖市| 内黄县| 宜都市| 曲阜市| 波密县| 呼图壁县| 南开区| 澜沧| 宝应县| 左权县| 买车| 宣威市| 休宁县| 临汾市| 洛扎县| 沂水县| 乌鲁木齐县| 大竹县| 关岭| 六安市| 许昌市| 清远市| 玛曲县|