當前位置:首頁 » 操作系統 » vbsocket源碼

vbsocket源碼

發布時間: 2023-07-08 09:54:04

A. 400分求vb.net,求一個socket的編程實例,詳細見問題補充:

至少需要
ImportsSystem
ImportsSystem.Net
ImportsSystem.Net.Sockets
ImportsSystem.Threading
ImportsSystem.Text
還要了解非同步與委託
簡單點的話
subtcplisten()'監聽過程
ConstLPortAsInteger=6850'本地監聽埠
DimIPaddAsIPAddress=Dns.GetHostEntry(Dns.GetHostName()).AddressList(1)』本地IP
'addresslist裡麵包括IPV6和IPV4
DimIPEPAsNewIPEndPoint(IPadd,LPort)'結點
基虧TCPL=NewTcpListener(IPEP)』建立監聽實例
TCPL.Start()'開始監聽
掘碧IfTCPL.Pending=TrueThen'如果有連接接入
DimTCPLXAsNewSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp)'建立一個新的SOCKET
TCPLX=TCPL.Accept()』將第一個接入掛起的連接傳給新建SOCKET,因為監聽的SOCKET還要繼續監聽
dimRipepasnewipendpoint=TCPLX.RemoteEndPoint'此時獲得遠程的ip與埠號
listbox.add(ripep.ip)
dimbuffasbyte()
buff=TCPLX.Receive()'listen>accept>recieve這時候可以接受判鋒舉數據了
dimsasstring=Encoding.Default.GetString(buff)'轉換成文本
msg"s"
TCPLX.send(buff)'這個是發送
endif
EndSub
長時間沒寫,可能有點小錯誤,你自己調試調試,大概步驟就是listen>accept>recieve,最好看看msdn,那個學起來才系統

B. VB Winsock最簡單的;聊天程序源代碼

這個是我以前學習的一個實例。希望對你有幫助!!!

用VB實現客戶——伺服器(TCP/IP)編程實例

-
現在大多數語言都支持客戶-伺服器模式編程,其中VB給我們提供了很好的客戶-伺服器編程方式。下面我們用VB來實現TCP/IP網路編程。
TCP/IP協議是Internet最重要的協議。VB提供了WinSock控制項,用於在TCP/IP的基礎上進行網路通信。當兩個應用程序使用Socket進行網路通信時,其中一個必須創建Socket伺服器偵聽,而另一個必須創建Socket客戶去連接伺服器。這樣兩個程序就可以進行通信了。
1.創建伺服器,首先創建一個服務埠號。並開始偵聽是否有客戶請求連接。
建立一窗體,並向其增加一個Winsock控制項(可在工程菜單中的部件項來添加此控制項)
添加兩文本框Text1,Text2,和一按鈕Command1
Private Sub Form_Load()
SockServer.LocalPort = 2000 ′伺服器埠號,最好大於1000
SockServer.Listen ′開始偵聽
End Sub
Private Sub Form_Unload(Cancel As Integer)
SockServer.Close
End Sub
Private Sub SockServer_Close()
SockServer.Close
End Sub
Private Sub SockServer_ConnectionRequest(ByVal requestID As Long)
SockServer.Close
SockServer.Accept requestID ′表示客戶請求連接的ID號
End Sub
′當客戶向伺服器發送數據到達後,產生DataArrival事件,在事件中接收數據,GetData方法接收數據。
Private Sub SockServer_Data
Arrival(ByVal bytesTotal As Long)
Dim s As String
SockServer.GetData s
Text1.Text = s
End Sub
當我需要向客戶發送數據時,只需調用SendData方法。
Private Sub Command1_Click()
SockServer .SendData Text2.Text
text1.text = text2.text
text2.text = ""
End Sub
2.創建客戶。要創建客戶連接伺服器,首先設置伺服器主機名,如IP地址、域名或計算機名,然後設置伺服器埠,最後連接伺服器。
建立一窗體,並向其增加一個Winsock控制項(可在工程菜單中的部件項來添加此控制項),取名為:SockC1。添加兩文本框Text1,Text2,和一按鈕Command1
Private Sub Form_Load()
dim my as string
my = SockCl.RemoteHostIP
SockCl.RemoteHost = my
′表示伺服器主機名
SockCl.RemotePort = 2000
′表示伺服器埠名
SockCl.Connect
′連接到伺服器
End Sub
Private Sub Form_Unload(Cancel As Integer)
SockCl.Close
End Sub
Private Sub SockCl_Close()
SockCl.Close
End Sub
Private Sub SockCl_DataArrival(ByVal bytesTotal As Long)
Dim s As String
SockCl.GetData s ′接收數據到文本框中
Text1.Text = s
End Sub
Private Sub Command1_Click()
SockCl.SendData Text2.Text ′向伺服器發送數據
text1.text = text2.text
text2.text = ""
End Sub
3.進行通信。把這兩個窗體分別編譯成兩個EXE文件,伺服器Server.exe和客戶Client.exe程序,並把它們分別安裝在伺服器端和客戶端,這樣就可以實現兩者通信了。

------------------------------------整理後的代碼如下-------------------------------

Private Sub Form_Load()
Dim my As String
my = SockCl.RemoteHostIP
SockCl.RemoteHost = my
SockCl.RemotePort = 2000
SockCl.Connect
End Sub
Private Sub Form_Unload(Cancel As Integer)
SockCl.Close
End Sub
Private Sub SockCl_Close()
SockCl.Close
End Sub
Private Sub SockCl_DataArrival(ByVal bytesTotal As Long)
Dim s As String
SockCl.GetData s
Text1.Text = s
End Sub
Private Sub Command1_Click()
SockCl.SendData Text2.Text
Text1.Text = Text2.Text
Text2.Text = ""
End Sub

Private Sub Form_Load()
SockServer.LocalPort = 2000
SockServer.Listen
End Sub
Private Sub Form_Unload(Cancel As Integer)
SockServer.Close
End Sub
Private Sub SockServer_Close()
SockServer.Close
End Sub
Private Sub SockServer_ConnectionRequest(ByVal requestID As Long)
SockServer.Close
SockServer.Accept requestID
End Sub
Private Sub Command1_Click()
SockServer.SendData Text2.Text
Text1.Text = Text2.Text
Text2.Text = ""
End Sub
Private Sub SockServer_DataArrival(ByVal bytesTotal As Long)
Dim s As String
SockServer.GetData s
Text1.Text = s
End Sub

C. VB的截取封包和發送封包源碼

參考資料:VB截取封包 關於VB開發外掛 尤其是API HOOK方面的分歧較多 其實vb做外掛一點也不遜色!
上過MSDN的開發者都知道 vb vc c# vj的樣例是統一的 僅僅是語法表達不一樣罷了!也就是說用VC寫的功能 同樣也能用VB寫出來!
下面提供一段VB利用API截獲RAW SOCKET封包的代碼,請不吝賜教!
Dim soc As Long, dwRc As Long
Dim RemoteAddr As sockaddr
Dim LocalAddr As sockaddr
Dim inBuffer, outBuffer As String
Dim byteReturn As Long
Dim RetMsg As String
Dim strData As String
Dim nReceived As Long
Const MAX_PACK_LEN = 4096
Dim keepRun As Boolean
Dim asc() As Byte
Private Type TcpHeader 'typedef struct tcp_hdr //定義TCP首部
th_sport As Integer '; //16位源埠
th_dport As Integer '; //16位目的埠
th_seq As Long '; //32位序列號
th_ack As Long '; //32位確認號
th_lenres As Byte '; //4位首部長度/6位保留字
th_flag As Byte '; //6位標志位
th_win As Integer '; //16位窗口大小
th_sum As Integer '; //16位校驗和
th_urp As Integer '; //16位緊急數據偏移量
End Type
........ 資料地址: http://hi..com/zyq0ting/blog/item/ab10783eca88783b70cf6ceb.html

D. 關於vb.net中socket編程實例:伺服器端的一些問題

Socket類連接後 可以通過類中的 RemoteEndPoint 來獲取遠程IP和埠信息.
要注意的是.需要將它強制轉化為 IPEndPoint類型 然後通過 IPEndPoint.Address以及IPEndPoint.Port來獲取對應的IP及埠

例:
Dim REV_SCK As New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)
'這里創建一個UDP Socket連接的實例 TCP也是一樣的

'省略SOCKET連接的代碼 當SOCKET連接成功後 可以用下面的語句獲取遠程信息
Dim IP as string ,Port as integer
'定義IP和Port變數 用來保存地址及埠
IP = IPAddress.Parse(CType(REV_SCK.RemoteEndPoint, IPEndPoint).Address.ToString())
Port = IPAddress.Parse(CType(REV_SCK.RemoteEndPoint, IPEndPoint).Port)

熱點內容
c語言位或和或 發布:2025-03-17 21:53:56 瀏覽:913
淘寶圖片上傳格式 發布:2025-03-17 21:48:55 瀏覽:939
博雅幹細胞存儲 發布:2025-03-17 21:24:07 瀏覽:53
dota2卡爾腳本 發布:2025-03-17 21:11:27 瀏覽:71
應用市場網站源碼 發布:2025-03-17 21:09:46 瀏覽:413
linux怎麼掛載 發布:2025-03-17 21:08:23 瀏覽:897
疫情資料庫 發布:2025-03-17 20:58:00 瀏覽:670
excel怎麼破解密碼 發布:2025-03-17 20:49:32 瀏覽:360
v10系統電腦怎麼連接伺服器 發布:2025-03-17 20:43:39 瀏覽:986
如何給應用設密碼是什麼 發布:2025-03-17 20:32:25 瀏覽:473