【网站源码英文】【霜雾源码】【黑马和源码】winsock vb 源码

时间:2024-11-08 11:22:14 编辑:c 超市收银系统源码 来源:线报php源码

1.vb 通过winsock 怎么判断用户在线
2.用VB向另一台电脑上的程序发送消息,求源代码和所需控件
3.VB获取网页源码中的网址

winsock vb 源码

vb 通过winsock 怎么判断用户在线

       五种查询Internet连接状态[含IP]的方法

       1.Powersock控件法:

       这种方法最简单,利用FastNet页的Powersock控件的LocalIP属性即可判断:

       if(Powersock1->LocalIP==".0.0.1"):在线

       else:离线

       特点:[1]判断连接状态,[2]获得本地IP。

       2.使用URL.DLL的InetIsOffline(0)函数:

       Win2K:URL.DLL存放在\SYSTEM\;

       Win9x:URL.DLL存放在\SYSTEM\;

       用GetSystemDirectory(...)得到系统目录。

       InetIsOffline(0)返回值:

       TRUE:离线;FALSE:在线。

       特点:判断连接状态。网站源码英文

       3.WinSock编程法:见程序

       特点:[1]判断连接状态;[2]获得本地IP和主机名。

       4.WinInet.DLL的InternetGetConnectedState(&dwFlag,0)函数:

       注意:为使用该函数,须在项目文件中加入:USELIB("WinInet.LIB")

       特点:获得较详的连接描述!

       5.RASAPI.DLL的RasEnumConnections函数:

       要使用该"枚举所有活动连接"函数,必须:

       #include"ras.h"。

       若连接数>0:本机当前已连入Internet;

       否则:本机当前未连入Internet;

       源码如下,在[BCB5+WIN2K+拨号上网]下通过(N字头的为菜单项):

       -------------Powersock控件法-----------------------------------------

       void__fastcallTForm1::NClick(TObject*Sender)

       {

       if(Powersock1->LocalIP==".0.0.1")

       ShowMessage("未连接:"+Powersock1->LocalIP);

       elseShowMessage("已连接:"+Powersock1->LocalIP);

       }

       -------------URL.DLL的InetIsOffline函数法----------------------------

       HINSTANCEhDLL;

       typedefbool__stdcall(*FUN)(int);定义DLL函数指针FUN

       FUNisOffLine;

       void__fastcallTForm1::NClick(TObject*Sender)

       {

       charBuffer[MAX_PATH];

       GetSystemDirectory(Buffer,MAX_PATH);

       hDLL=LoadLibrary((AnsiString(Buffer)+"\\URL.DLL").c_str());

       if(hDLL==NULL){ ShowMessage("CannotloadURL.DLL!Return...");return;}

       isOffLine=(FUN)GetProcAddress(hDLL,"InetIsOffline");

       if(isOffLine==NULL){ ShowMessage("CannotloadInetIsOffline(int),Return...");return;}

       if(!isOffLine(0))ShowMessage("已连接");

       elseShowMessage("未连接");

       FreeLibrary(hDLL);

       }

       ------------WinSock法------------------------------------------------

       void__fastcallTForm1::NClick(TObject*Sender)

       {

       WORDwVersionRequested;

       WSADATAwsaData;

       wVersionRequested=MAKEWORD(1,1);StartupWinSock

       WSAStartup(wVersionRequested,&wsaData);

       -----------------------------------------

       hostent*p;char*p2;chars[];

       gethostname(s,);Getthecomputername

       p=gethostbyname(s);

       p2=inet_ntoa(*((in_addr*)p->h_addr));GettheIpAddress

       -----------------------------------------

       AnsiStringLocationIP=p2;

       if(LocationIP==".0.0.1")

       ShowMessage("未连接:"+LocationIP);

       elseShowMessage("已连接:"+LocationIP);

       WSACleanup();

       }

       -----------WinInet.DLL的InternetGetConnectedState函数法----------------

       void__fastcallTForm1::NClick(TObject*Sender)

       {

       StaticText1->Caption="";StaticText2->Caption="";StaticText3->Caption="";

       StaticText4->Caption="";StaticText5->Caption="";StaticText6->Caption="";

       StaticText7->Caption="";

       DWORDdwFlag;

       InternetGetConnectedState(&dwFlag,0);

       if(dwFlag&INTERNET_CONNECTION_MODEM)StaticText1->Caption="Yes";MODEM连接

       elseStaticText1->Caption="No";

       if(dwFlag&INTERNET_CONNECTION_LAN)StaticText2->Caption="Yes";LAN连接

       elseStaticText2->Caption="No";

       if(dwFlag&INTERNET_CONNECTION_PROXY)StaticText3->Caption="Yes";代理连接

       elseStaticText3->Caption="No";

       ---------检查是否连接-------------------------------------------

       if(InternetGetConnectedState(NULL,0))StaticText4->Caption="Yes";在线

       elseStaticText4->Caption="No";

       if(dwFlag&INTERNET_CONNECTION_OFFLINE)StaticText5->Caption="Yes";//离线。注:不好用!

       elseStaticText5->Caption="No";

       ----------------------------------------------------------------

       if(dwFlag&INTERNET_RAS_INSTALLED)StaticText6->Caption="Yes";

       elseStaticText6->Caption="No";

       if(dwFlag&INTERNET_CONNECTION_CONFIGURED)StaticText7->Caption="Yes";

       elseStaticText7->Caption="No";

       }

       ----------RASAPI.DLL的霜雾源码RasEnumConnections函数法---------------------------

       #include"ras.h"

       void__fastcallTForm1::NClick(TObject*Sender)

       {

       RASCONNRASconn[];活动连接数组

       DWORDBuffSize;数组所占内存大小;

       DWORDConnNum;活动连接数目

       RASconn[0].dwSize=sizeof(RASCONN);必须指定一个连接[数组元素]的内存大小;

       BuffSize=sizeof(RASCONN)*;

       DWORDdwReturn=RasEnumConnections(RASconn,&BuffSize,&ConnNum);

       if(dwReturn==0)

       {

       if(ConnNum>0)ShowMessage("已连接。当前激活连接数:"+AnsiString(ConnNum));

       elseShowMessage("未连接。当前激活连接数:"+AnsiString(ConnNum));

       }

       elseShowMessage("RasEnumConnections函数失败!");

用VB向另一台电脑上的程序发送消息,求源代码和所需控件

       这代码发送和接收的MSDN6.0中有,在索引中键入winscok 控件,点使用 Winsock 控件

       其中关于UDP

       协议是一种无连接协议,两台计算机之间的传输类似于传递邮件:消息从一台计算机发送到另一台计算机,但是黑马和源码两者之间没有明确的连接。另外,单次传输的最大数据量取决于具体的网络。

       要创建一个 UDP 伙伴,请按照以下步骤执行: 

       创建一个新的 Standard EXE 工程。

       将缺省的窗体的名称修改为 frmPeerA。

       将窗体的标题修改为“Peer A”。

       在窗体中放入一个 Winsock 控件,zircon传奇源码并将其命名为 udpPeerA。

       在“属性”页上,单击“协议”并将协议修改为 UDPProtocol。

       在窗体中添加两个 TextBox 控件。将第一个命名为 txtSend,第二个命名为 txtOutput。

       为窗体增加如下的萍乡麻将源码代码。

Private Sub Form_Load()

       '控件的名字为 udpPeerA

       With udpPeerA

       '重点:必须将 RemoteHost 的值

       '修改为计算机的名字。

       .RemoteHost= "PeerB" 

       .RemotePort =    '连接的端口号。

       .Bind                 '绑定到本地的端口。

       End With

       frmPeerB.Show                 '显示第二个窗体。

       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

       txtOutput.Text = strData

       End Sub

       要创建第二个 UDP 伙伴,请按照以下步骤执行:

       在工程中添加一个标准窗体。

       将窗体的名字修改为 frmPeerB。

       将窗体的标题修改为“Peer B”。

       在窗体中放入一个 Winsock 控件,并将其命名为 udpPeerB。

       在“属性”页上,单击“协议”并将协议修改为“UDPProtocol”。

       在窗体上添加两个 TextBox 控件。将第一个命名为 txtSend,第二个命名为 txtOutput。

       在窗体中添加如下的代码。

       Private Sub Form_Load()

       '控件的名字为 udpPeerB。

       With udpPeerB

       '重点:必须将 RemoteHost 的值改为

       '计算机的名字。

       .RemoteHost= "PeerA"

       .RemotePort =     '要连接的端口。

       .Bind                 '绑定到本地的端口上。

       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

       txtOutput.Text = strData

       End Sub

VB获取网页源码中的网址

       你好,(由于问题情境不充足,)这里假设你通过 Winsock 控件或 Internet Control 控件成功地获取网页源码并存储入变量 strCode 中。

       然后可以参考以下思路:

       ' 注:该程序只能作为获取静态网页类型(*.htm/*.html)文件的链接。以下代码最好放入一个独立的函数中:

       Dim l As Long, j As Long, lLen As Long

       Dim strTmp As String, strTmp2 As String

       Dim strLink As String, strLinkList As String

       Dim bErr As Boolean

       lLen = Len(strCode)

       strTmp = LCase(strCode)

       l = InStr(1, strTmp, "http://")

       Do While l <> 0

        For j = l + 7 To lLen - 1

        strTmp2 = Mid(strTmp, j, 5)

        If strTmp2 = ".html" Then ' 命中

        strLink = Mid(strTmp, l, j - l + 5)

        ElseIf strTmp2 Like ".htm?" ' 命中

        strLink = Mid(strTmp, l, j - l + 4)

        End If

        Exit For

        Next

        If Len(strLink) Then

        strLinkList = strLinkList & strLink & vbNewLine

        strLink = Empty

        Else ' 未命中

        MsgBox "提示:该网页存在无效链接。", vbCritical, "注意"

        '-----------------------------

        ' TODO: 如果要继续分析,则不编写代码

        ' 如果直接退出,则加入:

        ' bErr = True

        ' Exit Do

        '-----------------------------

        End If

        l = InStr(l + 7, strTmp, "http://")

       Loop

       If bErr Then

        MsgBox "程序运行时发生错误。", vbExclamation, "提示"

       End If