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

溫馨提示×

溫馨提示×

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

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

如何實現VB.NET服務器端

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

小編給大家分享一下如何實現VB.NET服務器端,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

這是用VB.NET實現的一個簡單的P2P示例,利用了UDP打洞技術.分服務器端跟客戶端,VB.NET服務器端負責登陸記錄用戶的IP和端口及轉發打洞消息(相關技術在CSDN搜一下,有很多的),原理到處都有,這里貼出了VB.NET的代碼,供初學者交流,也歡迎高手點評。

VB.NET服務器端在啟動成功后,輸入help可以查看到服務器相關命令。客戶端在登陸成功后,輸入help可以查看客戶端相關命令。(登陸時用戶名隨便)

以下是VB.NET服務器端:

  1. Imports System.Net  

  2. Imports System.Net.Sockets  

  3. Imports System.Text  

  4. Imports System.Threading  

  5. Imports System.Collections  

  6.  

  7. Module myUDPServer  

  8.  

  9. #Region "全局變量"  

  10.  

  11. Dim ServerSocket As New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)  

  12. Dim ipep As IPEndPoint = New IPEndPoint(IPAddress.Any, 11000)  

  13.  

  14. Dim htUserList As New Hashtable '用來保存在線用戶和用戶的"IP和端口"  

  15.  

  16. Dim userName(0) As String  

  17. Dim userIPEP(0) As IPEndPoint  

  18. Dim userTime(0) As Integer  

  19.  

  20. Dim timerDelegate As New TimerCallback(AddressOf onLineTimeOut)  

  21.  

  22. #End Region  

  23.  

  24. #Region "參數"  

  25.  

  26. '以下是客戶端到服務器端的消息開頭  

  27. Const LOGININ As String = "10" '請求登陸的消息|||消息形式:10+自己的用戶名  

  28. Const LOGINOUT As String = "11" '請求登出的消息|||消息形式:11+自己的用戶名  

  29. Const GETULIST As String = "12" '請求獲得在線用戶列表|||消息形式:12  

  30. Const P2PCONN As String = "13" '請求P2P連接的消息|||消息形式:13+自己的用戶名+|+對方的用戶名  

  31. Const HOLDLINE As String = "14" '保持連接.|||消息開式:14+自己的用戶名  

  32.  

  33. '以下是服務器到客戶端的消息開頭  

  34. Const HVUSER As String = "20" '用戶名已存在  

  35. Const GETUSER As String = "21" '在線用戶列表|||消息格式:21+用戶名+EP  

  36. Const MAKHOLD As String = "22" '打洞命令|||消息格式:22+IP  

  37. Const LOGINOK As String = "23" '登陸成功  

  38. Const SERVCLS As String = "24" '服務器關閉  

  39. Const MSGEND As String = "25" '消息結束  

  40.  

  41. '以下是服務器端的命名  

  42. Const EXITPRO As String = "EXIT" '退出命令  

  43. Const SHOWULIST As String = "SHOWUSER" '顯示在線用戶  

  44. Const HELP As String = "HELP" '顯示幫助  

  45.  

  46. #End Region  

  47.  

  48. #Region "方法"  

  49.  

  50. '主函數,程序入口  

  51. Sub Main()  

  52.  

  53. '獲得服務器的IP地址  

  54. Dim addressList As System.Net.IPAddress() = Dns.GetHostByName(Dns.GetHostName()).AddressList  

  55. Dim ServerIP As IPAddress = addressList(0)  

  56.  

  57. ServerSocket.Bind(ipep)  

  58. Console.WriteLine("服務器正在啟動....")  

  59. Console.WriteLine("服務器IP:" & ServerIP.ToString & " 正在監聽" & ipep.Port.ToString & "端口")  

  60. Dim listenTH As New Thread(AddressOf listen)  

  61. listenTH.Start() '啟用監聽的線程  

  62. Console.WriteLine("服務器啟動成功.....")  

  63.  

  64. Dim timer As New Timer(timerDelegate, Nothing, 0, 5000)  

  65.  

  66. Dim SVInput As String  

  67. While True  

  68. Console.Write("Server>")  

  69. SVInput = Console.ReadLine().ToUpper  

  70. Select Case SVInput  

  71. Case EXITPRO  

  72. listenTH.Abort()  

  73. ServerSocket.Close()  

  74. Exit Sub  

  75. Case SHOWULIST  

  76. showUser()  

  77. Case HELP  

  78. Console.Write("*" & Chr(10) & Chr(13) & "exit:輸出當前程序" & Chr(10) & Chr(13) & 
    "showuser:顯示當前在線用戶例表" & Chr(10) & Chr(13) & 
    "help:顯示幫助" & Chr(10) & Chr(13) & "*" & Chr(10) & Chr(13))  

  79. Case Else  

  80. Console.WriteLine("*" & Chr(10) & Chr(13) 
    & "笨瓜,你輸入的不是有效的命令." & Chr(10) & Chr(13) & "*")  

  81. End Select  

  82. End While  

  83.  

  84. End Sub  

以上是“如何實現VB.NET服務器端”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

AI

四会市| 会理县| 金乡县| 阿克苏市| 盐津县| 肥城市| 西华县| 德保县| 罗山县| 依安县| 富顺县| 大新县| 道孚县| 株洲市| 通辽市| 禄劝| 汕尾市| 华蓥市| 白朗县| 利津县| 桃园市| 麻栗坡县| 满洲里市| 宁德市| 历史| 安塞县| 浑源县| 湟中县| 仁怀市| 黄大仙区| 临漳县| 临猗县| 宽甸| 钦州市| 芜湖市| 安福县| 南宫市| 金川县| 安平县| 湟中县| 潜山县|