新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
全面展示VB.NET服務器端
VB.NET還是比較常用的,于是我研究了一下VB.NET服務器端,在這里拿出來和大家分享一下,希望對大家有用。

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供閔行企業(yè)網(wǎng)站建設,專注與做網(wǎng)站、網(wǎng)站制作、H5技術、小程序制作等業(yè)務。10年已為閔行眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設計公司優(yōu)惠進行中。
這是用VB.NET實現(xiàn)的一個簡單的P2P示例,利用了UDP打洞技術.分服務器端跟客戶端,VB.NET服務器端負責登陸記錄用戶的IP和端口及轉發(fā)打洞消息(相關技術在CSDN搜一下,有很多的),原理到處都有,這里貼出了VB.NET的代碼,供初學者交流,也歡迎高手點評。
VB.NET服務器端在啟動成功后,輸入help可以查看到服務器相關命令??蛻舳嗽诘顷懗晒螅斎雋elp可以查看客戶端相關命令。(登陸時用戶名隨便)
以下是VB.NET服務器端:
- Imports System.Net
- Imports System.Net.Sockets
- Imports System.Text
- Imports System.Threading
- Imports System.Collections
- Module myUDPServer
- #Region "全局變量"
- Dim ServerSocket As New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)
- Dim ipep As IPEndPoint = New IPEndPoint(IPAddress.Any, 11000)
- Dim htUserList As New Hashtable '用來保存在線用戶和用戶的"IP和端口"
- Dim userName(0) As String
- Dim userIPEP(0) As IPEndPoint
- Dim userTime(0) As Integer
- Dim timerDelegate As New TimerCallback(AddressOf onLineTimeOut)
- #End Region
- #Region "參數(shù)"
- '以下是客戶端到服務器端的消息開頭
- Const LOGININ As String = "10" '請求登陸的消息|||消息形式:10+自己的用戶名
- Const LOGINOUT As String = "11" '請求登出的消息|||消息形式:11+自己的用戶名
- Const GETULIST As String = "12" '請求獲得在線用戶列表|||消息形式:12
- Const P2PCONN As String = "13" '請求P2P連接的消息|||消息形式:13+自己的用戶名+|+對方的用戶名
- Const HOLDLINE As String = "14" '保持連接.|||消息開式:14+自己的用戶名
- '以下是服務器到客戶端的消息開頭
- Const HVUSER As String = "20" '用戶名已存在
- Const GETUSER As String = "21" '在線用戶列表|||消息格式:21+用戶名+EP
- Const MAKHOLD As String = "22" '打洞命令|||消息格式:22+IP
- Const LOGINOK As String = "23" '登陸成功
- Const SERVCLS As String = "24" '服務器關閉
- Const MSGEND As String = "25" '消息結束
- '以下是服務器端的命名
- Const EXITPRO As String = "EXIT" '退出命令
- Const SHOWULIST As String = "SHOWUSER" '顯示在線用戶
- Const HELP As String = "HELP" '顯示幫助
- #End Region
- #Region "方法"
- '主函數(shù),程序入口
- Sub Main()
- '獲得服務器的IP地址
- Dim addressList As System.Net.IPAddress() = Dns.GetHostByName(Dns.GetHostName()).AddressList
- Dim ServerIP As IPAddress = addressList(0)
- ServerSocket.Bind(ipep)
- Console.WriteLine("服務器正在啟動....")
- Console.WriteLine("服務器IP:" & ServerIP.ToString & " 正在監(jiān)聽" & ipep.Port.ToString & "端口")
- Dim listenTH As New Thread(AddressOf listen)
- listenTH.Start() '啟用監(jiān)聽的線程
- Console.WriteLine("服務器啟動成功.....")
- Dim timer As New Timer(timerDelegate, Nothing, 0, 5000)
- Dim SVInput As String
- While True
- Console.Write("Server>")
- SVInput = Console.ReadLine().ToUpper
- Select Case SVInput
- Case EXITPRO
- listenTH.Abort()
- ServerSocket.Close()
- Exit Sub
- Case SHOWULIST
- showUser()
- Case HELP
- 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))- Case Else
- Console.WriteLine("*" & Chr(10) & Chr(13)
& "笨瓜,你輸入的不是有效的命令." & Chr(10) & Chr(13) & "*")- End Select
- End While
- End Sub
【編輯推薦】
- 描述VB.NET EIF體系
- 簡單講述VB.NET多重繼承
- 淺談VB.NET語言與.NET開發(fā)語言關系
- 講解VB.NET語言學習經(jīng)驗
- 淺析VB.NET語言到底帶來了什么
本文名稱:全面展示VB.NET服務器端
網(wǎng)站地址:http://www.dlmjj.cn/article/djpjoeg.html


咨詢
建站咨詢
