精华内容
下载资源
问答
  • 非常实用的VB6.0 UDP通信里程,里面有非常详细注释,希望对你有帮助
  • vb.net UDP通讯源码

    热门讨论 2009-02-26 13:43:13
    vb.net2005实现UDP发送接收数据源代码,绑定端口,socket接收数据。
  • VB UDP.rar

    2020-07-21 17:37:34
    完整的VB UDP,可以参考一下。
  • 这是VB2013 开发的UDP通信程序,内含两个完整工程,一收一发,完美的展现了UDP通信原理,关键是代码很少很少,一共也就十几行的样子,一看就会
  • vb tcp udp

    千次阅读 2008-11-26 23:49:00
    使用微软IP助手库函数(iphlpapi.dll)是一个捷径。其中 GetTcpTable函数能返回当前系统中全部有效 TCP连接。其定义为: DWORD GetTcpTable( PMIB_TCPTABLE pTcpTable, // buffer for the connection table ...
     
    

    使用微软的IP助手库函数(iphlpapi.dll)是一个捷径。其中的 GetTcpTable函数能返回当前系统中全部有效的 TCP连接。其定义为:
    DWORD GetTcpTable(
    PMIB_TCPTABLE pTcpTable, // buffer for the connection table
    PDWORD pdwSize, // size of the buffer
    BOOL bOrder // sort the table?
    );

    其中参数一是 TCP连接表缓冲区的指针,参数二是缓冲区大小(当缓冲区不够大时,该参数返回实际需要的大小),参数三指示连接表是否需要按“Local IP”、“Localport”、“Remote IP”、“Remote port”依次进行排序。  

    当我们担心被黑客攻击或怀疑电脑被植入木马时,我们往往求助于防火墙。其实,避免用宰牛刀的手段有很多,本文即通过实时监控全部 TCP连接的方法来实现防黑。
    一、监控 TCP连接
    黑客程序或木马程序的本质是实现数据传输。TCP和UDP(用户数据文报协议)是两个最常用的数据传输协议,它们都使用设置监听端口的方法来完成数据传输。
    实时监控所有端口的连接情况、及时对异常连接发出警告并提示用户删除异常连接,就可以有效地达到防黑目的。
    使用微软的IP助手库函数(iphlpapi.dll)是一个捷径。其中的 GetTcpTable函数能返回当前系统中全部有效的 TCP连接。其定义为:
    DWORD GetTcpTable(
    PMIB_TCPTABLE pTcpTable, // buffer for the connection table
    PDWORD pdwSize, // size of the buffer
    BOOL bOrder // sort the table?
    );
    其中参数一是 TCP连接表缓冲区的指针,参数二是缓冲区大小(当缓冲区不够大时,该参数返回实际需要的大小),参数三指示连接表是否需要按“Local IP”、“Localport”、“Remote IP”、“Remote port”依次进行排序。
    对于监控 UDP连接表,可使用 GetUdpTable函数完成。由于在使用上完全类似,这里略去讨论(后面的实例程序中也相应地略去了对 UDP的监控)。
    二、异常警告及删除连接
    通过定时比较前后两个 TCP连接表,我们可以立即发现异常并发出警告。后面的实例程序用声音和报警标志提醒用户注意可能的外界入侵。
    收到警告信号后,我们应首先将可疑连接删除掉,然后再仔细查找系统中是否有安全漏洞或有可疑进程在工作。IP助手库函数中的 SetTcpEntry函数可以帮助我们删除可疑连接。其定义为:
    DWORD SetTcpEntry(
    PMIB_TCPROW pTcpRow // pointer to struct. with new state info
    );
    在调用此函数之前,应将欲删连接的状态置为 MIB_TCP_STATE_DELETE_TCB(删除)。MIB_TCP_STATE_DELETE_TCB也是目前唯一可在运行时设置的状态。
    三、实例程序及其运行情况
    下面的三幅示意图分别展示了:(1) 系统被攻击前的状况,(2) 系统被目前流行的“冰河”远程攻击软件入侵后而发出警告的状况,以及(3) 用户正在清除可疑连接时的状况。
    01_7_6_2a.jpg
    01_7_6_2b.jpg
    01_7_6_2c.jpg
    下面是实例程序的完整代码:
    ' 黑客入侵监控程序(VB6)
    Option Explicit
    Private Type MIB_TCPROW ' TCP连接表中一行的结构
    dwState As Long ' 状态
    dwLocalAddr As Long ' Local IP
    dwLocalPort As Long ' Local port
    dwRemoteAddr As Long ' Remote IP
    dwRemotePort As Long ' Remote port
    End Type
    Private Type MIB_TCPTABLE
    dwNum_Of_Entries As Long ' 当前 TCP连接的总数
    TCP_Table(120) As MIB_TCPROW ' 预留了120行的缓冲区
    End Type
    Private Declare Function GetTcpTable Lib "iphlpapi.dll" (ByRef pTcpTable _
    As MIB_TCPTABLE, ByRef pdwSize As Long, ByVal bOrder As Long) As Long
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByRef _
    pDest As Any, ByRef pSource As Any, ByVal Length As Long)
    Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" _
    (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
    Private Declare Function GetWindowsDirectory Lib "kernel32" Alias _
    "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
    Private Declare Function SetTcpEntry Lib "iphlpapi.dll" (ByRef pTcpTable _
    As MIB_TCPROW) As Long
    Dim Last_Num_Of_Entries As Long
    Dim TCP1 As MIB_TCPTABLE
    Private Sub Form_Load()
    Timer1.Interval = 10000 ' 定时监控
    Timer1_Timer
    End Sub
    Private Sub Timer1_Timer()
    Dim Return1 As Long, i As Long, Tmp1 As Long, Tmp2 As Long
    Dim Ip_Buf(1 To 4) As Byte
    Dim Win_Path As String, Tmp3 As String
    Return1 = GetTcpTable(TCP1, Len(TCP1), 1) ' 返回 TCP连接表
    If Last_Num_Of_Entries <> 0 And _
    Last_Num_Of_Entries <> TCP1.dwNum_Of_Entries Then ' 有异常时发出警告
    Picture1.Visible = True ' 设置警告标志
    On Error Resume Next
    Win_Path = String(145, 0)
    i = GetWindowsDirectory(Win_Path, 145)
    Win_Path = Left(Win_Path, i)
    i = sndPlaySound(Win_Path + "/Media/Ding.wav", &H1) ' 发出报警声音
    On Error GoTo 0
    Else
    If Picture1.Visible = True Then Picture1.Visible = False
    End If
    Last_Num_Of_Entries = TCP1.dwNum_Of_Entries
    Select Case Return1 ' 判断返回值
    Case 0&:
    Text1 = "": Combo1.Clear
    For i = 0 To TCP1.dwNum_Of_Entries - 1
    Tmp3 = Str(i + 1) + " "
    Select Case TCP1.TCP_Table(i).dwState ' 显示连接状态
    Case 1: Tmp3 = Tmp3 + "CLOSED"
    Case 2: Tmp3 = Tmp3 + "LISTENING"
    Case 3: Tmp3 = Tmp3 + "SYN_SENT"
    Case 4: Tmp3 = Tmp3 + "SYN_RCVD"
    Case 5: Tmp3 = Tmp3 + "ESTABLISHED"
    Case 6: Tmp3 = Tmp3 + "FIN_WAIT1"
    Case 7: Tmp3 = Tmp3 + "FIN_WAIT2"
    Case 8: Tmp3 = Tmp3 + "CLOSE_WAIT"
    Case 9: Tmp3 = Tmp3 + "CLOSING"
    Case 10: Tmp3 = Tmp3 + "LAST_ACK"
    Case 11: Tmp3 = Tmp3 + "TIME_WAIT"
    Case 12: Tmp3 = Tmp3 + "DELETE_TCB"
    End Select
    Combo1.AddItem Tmp3 ' 充实列表以供用户删除
    Tmp3 = Tmp3 + ":" + vbCrLf + vbTab + "Local: " ' 本地IP
    CopyMemory Ip_Buf(1), TCP1.TCP_Table(i).dwLocalAddr, 4
    Tmp3 = Tmp3 + CStr(Ip_Buf(1)) + "." + CStr(Ip_Buf(2)) + "." _
    + CStr(Ip_Buf(3)) + "." + CStr(Ip_Buf(4))
    Tmp1 = TCP1.TCP_Table(i).dwLocalPort ' 本地端口
    Tmp2 = Tmp1 / 256 + (Tmp1 Mod 256) * 256
    Tmp3 = Tmp3 + ":" + Str(Tmp2) + vbTab + "Remote: " ' 远程IP
    CopyMemory Ip_Buf(1), TCP1.TCP_Table(i).dwRemoteAddr, 4
    Tmp3 = Tmp3 + CStr(Ip_Buf(1)) + "." + CStr(Ip_Buf(2)) + "." _
    + CStr(Ip_Buf(3)) + "." + CStr(Ip_Buf(4))
    Tmp1 = TCP1.TCP_Table(i).dwRemotePort ' 远程端口
    Tmp2 = Tmp1 / 256 + (Tmp1 Mod 256) * 256
    Tmp3 = Tmp3 + ":" + Str(Tmp2) + vbCrLf
    Text1 = Text1 + Tmp3
    Next i
    Case 50&:
    MsgBox "系统不支持该API函数": End
    Case 87:
    MsgBox "无效的参数": End
    Case 111&:
    MsgBox "缓冲区溢出": End
    Case 232&:
    MsgBox "无数据": End
    End Select
    End Sub
    Private Sub 删除该连接_Click()
    Dim Return1 As Long
    If Combo1.ListIndex < 0 Then Exit Sub
    ' 将欲删连接的状态置为MIB_TCP_STATE_DELETE_TCB(值为12)
    TCP1.TCP_Table(Combo1.ListIndex).dwState = 12
    Return1 = SetTcpEntry(TCP1.TCP_Table(Combo1.ListIndex)) ' 执行删除
    If Return1 = 0 Then
    MsgBox "成功删除当前连接"
    Else
    MsgBox "删除连接失败"
    End If
    Timer1_Timer
    End Sub
    点击这里下载EXE文件。
    展开全文
  • VB.NET UDP数据传送列子

    2017-04-14 20:12:26
    局域网聊天工具最基本技术实例,两个电脑可以连接传送信息。
  • #vb winsock udp循环绑定端口在使用udp协议时,需要绑定一个端口,但可能指定端口被占用。 所以需要进行循环,从指定端口往后开始,寻找一个未被占用端口进行bind'从5100开始绑定端口直到成功为止 Dim p As ...

    vb winsock udp循环绑定端口

    在使用udp协议时,需要绑定一个端口,但可能指定的端口被占用。
    所以需要进行循环,从指定端口往后开始,寻找一个未被占用的端口进行bind

    '从5100开始绑定端口直到成功为止
    Dim p As Integer
    p = 5100
    
    On Error Resume Next
    Do
        Err.Clear
        p = p + 1
        wsk.Bind p
        If Err.Number = 0 Then Exit Do  '绑定成功就退出循环
    Loop While 1  '未绑定成功就无限循环
    
    展开全文
  • 时隔这么久,又有个用UDP通讯项目; 回顾了一下,不解决本地端口绑定是不行, 这个整么理解,即本地我们以8888端口发送到远端8888端口, 不是任意指定一个随机本地端口发送到远端8888端口, 言归正传,上马...

    2年前用到udp通信,但是本地端口没有指定,后面没有继续,也不了了之;

    时隔这么久,又有个用UDP通讯的项目;

    回顾了一下,不解决本地端口绑定是不行的,

    这个整么理解,即本地我们以8888端口发送到远端8888端口,

    不是任意指定一个随机本地端口发送到远端8888端口,

    言归正传,上马,

    当我们要发送字符或16进制时,如下,当这个模式发送的时候,接收端显示发送端口为随机端口;

    Dim udp_sender As New UdpClient
    Dim RemoteUdp As New IPEndPoint(IPAddress.Parse(fasong_IP.Text.ToString), 
    ...
                udp_sender.Send(sdata, sdata.Length, RemoteUdp)
    ...

    在适当的位置重新设置加入以下设置,绑定本地发送端口,针对RemoteUdp的设置稍作调整:

    Dim udp_socket = New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)
            udp_socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1)
            udp_socket.Bind(New IPEndPoint(IPAddress.Any, 8888))
            udp_sender.Client = udp_socket

    通讯结果为:本地指定了固定的端口发送到对方固定端口;

    总结:

    其实最早调节这个的时候,当没有办法的办法的时候,可以尝试看下C#的同等语法,有一些启示,其他也看了下,JAVA的,但是不怎么匹配;

    好了,目前解决了这个问题,给来往的人一些参考,抛砖引玉,做出你们想要的东西。

     

    展开全文
  • VB中Winsock控制的UDP协议的使用

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

    也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                    VB中Winsock控制的UDP协议的使用 
      UDP协议基础:
      UDP(User Datagram Protocol)是一种无连接协议,与TCP操作不同,计算机间并不需要建立一个连接,同时,一个UDP应用可同时作为应用的客户或服务器方。
      由于UDP协议并不需要建立一个明确的连接,因此建立UDP应用要比建立TCP应用简单得多。在TCP应用中,一个Winsock控制必须明确地设置成“监听”,而其它Winsock控制则必须使用Connect方法来初始一个连接。
      使用UDP协议,在两个Winsock控制间进行数据的发送,在连接的两端必须完成以下三步:
      1.设置RemoteHost属性为其它计算机的名称;
      2.设置RemotePort属性为第二个Winsock控制的LocalPort属性的值;
      3.申请Bind方法。
      通过使用方法Bind,则可将该Winsock控制捆绑到一个本地端口,以便该Winsock控制使用该端口来进行类似TCP的“监听”功能,并防止其它应用使用该端口。
      使用该协议传送数据,首先设置客户计算机的LocalPort属性。而作为服务器的计算机仅需要设置RemoteHost属性为客户计算机的IP地址或域名即可,并将其RemotePort属性设置成客户计算机上的LocalPort属性即可,然后就可通过申请SendData方法来开始信息发送,客户计算机则可在其DataArrial事件中使用方法GetData来获取发送的信息。
      下例具体演示了一个“谈话”应用,以允许相互间进行实时的交谈。
      UDP应用一:
      建立一个新标准EXE工程文件,拖放一个Winsock控制到表单上,添加两个文本框到表单上,然后进行以下属性的设置:
      表单(Form):Name=“frmPeerA” Caption=“UDP Application(1)”
      Winsock控制:Name=“udpPeerA” Protocol=“sckUDPProtocol”
      文本框1(TextBox): Name“txtSend”
      文本框2(TcxtBox): Name=“txtOutput” MultiLine-True ScrollBars=2
      然后打开代码窗口,分别在相应的事件下输入以下代码:
      Private Sub Form_Load()
       With udpPeerA
       .RemoteHost=“197.1.1.2” '要连接到的计算机名
       .RemotePort=1010 '要连接到的端口号
       .LocalPort=1011 '该Winsock控制将要使用的本地端口号,便于其它端与该Winsock通讯
       .Bind 1011 '将该Winsock控制绑定到该本地端口
       EndWith
      End Sub
      Private Sub txtSend_Change()
       udpPeerA.SendData txtSend.Text'发送文本
      End Sub
      Private Sub udpPeerA_DataArrival(ByVal bytesTotal As Long)
       Dim strData As String
       udpPeerA.GetData strData,vbString
       txtOutput.Text = strData
      End Sub
      UDP应用二:
      类似建立UDP Server的方法,在表单上添加一个Winsock控制及两个文本框,然后进行以下属性的设置:
      表单(Form):Name=“frmPeerB” Caption=“UDP Application(2)”
      Winsock控制:Name=“udpPeerB” Protocol=“sckUDPProtoclool”
      文本框1(TextBox):Name=“txtSend”
      文本框2(TextBox):Name=“txtOutput” MultiLine=True ScrollBars=2
      然后输入以下代码:
      Private Sub Form_Load()
       With udpPeerB
       .RemoteHost=“197.1.1.2” '要连接到计算机的IP地址
       .RemotePort=1011 '要连接到的端口号
       .LocalPort=1010 '该Winsock控制将使用的本地端口号,便于其它方与之通讯
       .Bind 1010 '将该Winsock控制绑定到该本地端口
       End With
      End Sub
      Private Sub txtSend_Change()
       udpPeerB.SendData txtSend.Text '发送文本
      End Sub
      Private Sub udpPeerB_DataArrival(ByVal bytesTotal As Long)
       Dim strData As String
       udpPeerB.GetData strData,vbString
      txtOutput.Text=strData
      End Sub
      要运行该实例,打开两个Visual Basic的事例,然后分别运行这两个工程文件即可。若要在不同的机器上运行此两例,只需要将两个工程文件中的RemoteHost改变成相应的计算机的IP地址或域名即可(以上例子在Visual Basic 5.0及PWIN97上通过)。

               

    给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

    这里写图片描述
    展开全文
  • VB UDP文件传输示例

    2012-07-02 16:23:29
    本人用VB编写的UDP文件传输的一个示例,已经具备一个较完整功能的雏形,欢迎下载交流。
  • VB Socket通讯UDP方式

    2017-09-04 15:17:39
    VB环境下的UDP方式socket通讯,注意调试代码前需要先添加winsocket控件,代码中为一个为发送端,一个为客户端
  • VB UDP网络通信问题

    2018-12-12 11:58:09
    请问高手,VB UDP 网络通信可以判断连接成功还是失败吗? 具体怎么操作呢?谢谢!
  • VERSION 5.00Object = "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.OCX"Begin VB.Form frmMain BorderStyle = 1 Fixed Single Caption = "点对点聊天 " ClientHeight = 51
  • VB调用WINSOCK控件,通过UDP协议进行发送及接收数据示例,事件驱动,速度极快!
  • 问题描述:UDP协议是不需要建立链接,那我就可以随意链接其他人发数据了啊?如果udp是无连接,那可以向任何人发送数据了么?如果他只写接受函数不就是随意通信了么?还有就是通讯方面消息接收端是如何知道消息...
  • 实现 UDP 连接通行,包括 client 和 server
  • 我知道对方IP可以用remotehostIP来获得。 但是端口号怎么获得呢。 麻烦知道坛友指导一下
  • VB.NET 局域网通讯,用的UDP方式,2个源代码。一个发送端,一个接收端。
  • 刚刚接触sockets 用UDP协议,做了一个局域网聊天程序。有关于获得在线列表问题上,参考了很多方法,最终找到一个简单解决方法。每次有新程序打开时,都会向网内广播一个询问消息,然后其他程序接收到后,...
  • 。。。。。。。VB编写TCP/UDP协议网口通讯调试助手源代码
  • VB6.0,使用UDP协议广播数据,数据量比较大,有5~7万字节,分成每块1024字节循环发送,但是发送一部分之后就出现错误 实时错误 '10035': 套接字不成块,指定操作将分块 按理说1024字节已经远远小于缓冲区大小了,...
  • vb.net Socket Udp协议实时在线云消费机服务器端开发示例,本示例展示了vb.net 监听UDP通讯端口,向端口发送信息,只需在本示例上加上数据库增、删、查、改等操作就可快速完成实时一卡通消费系统。
  • VB.net 发送和接收基于UDP的广播,程序由发送端和接收端组成,各司其责,在发送端输入内容,点击“发送”后,接收端能收到信息,UDP的点对点消息发送程序,有兴趣可下载参阅。程序运行于VS2005及更高版本.net...
  • #一-osi与tcpip各层结构与功能都有哪些协议#五层协议体系结构#1-应用层#...三次握手和四次挥手面试常客#为什么要三次握手#为什么要传回-syn#传了-syn为啥还要传-ack#为什么要四次挥手#三-tcp、udp-协议区别...
  • 客户端启动后把自己IP地址+关键字向全网段广播,服务器端收到广播后,将服务器IP地址向客户端IP地址发送。我在网上找到一段代码,可是是使用JoinMulticastGroup,无法实现全网段广播。希望大家指点指点,谢谢! ...
  • ESP32-CAM开发板UDP视频编程是初学者非常头痛的,本人踩过不少的坑,这里将个人思路介绍给大家,让学习VB的人多一个实例,此UDP编程中上位机用VB.NET编程,图像不卡.个人认为比较理想.
  • 但是由于udp协议本身没有自动找包功能,因此经常会出现丢包现象,会造成传送文件丢包现象因为时间匆忙和水平有限,本人在效率上没有作优化,只是简单实现,请大家自己看源码吧注释:主要功能:把文件猜成...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 183
精华内容 73
关键字:

vb的udp