利用VB.Net 通过Windows Sockets (Winsock)以及多线程编程进行桌面电脑与Pocket PC间的双向通信

本文介绍使用VB.Net通过WindowsSockets及多线程实现PC与PocketPC(PPC)的双向通信方法。通过.Net平台编程语言Visual Basic.Net2003编写两端程序,实现信息交换。

利用VB.Net编程实现PC与掌上电脑PPC间的双向通信

 

[源文件下载] http://www.cnblogs.com/Risen/category/110585.html
本文介绍如何利用VB.Net 通过Windows Sockets (Winsock)以及多线程编程进行桌面电脑与Pocket PC(掌上电脑,简称:PPC)间的双向通信,并且通过当今流行的.net平台编程语言Visaul Basic.Net 2003编写PC端和PPC端程序实现两者的信息交换。
<!--[if !supportLists]--> 一、<!--[endif]-->概述
如今移动计算设备越来越普及,而PPC与桌面电脑的数据交换更是其必不可少的功能。笔者根据实际的无线PPC开发认为,PPC程序与桌面程序进行通信,除了可以通过SQL Server CE提供的RDA(远程数据存取)和Replication(复制)来完成与桌面SQL Server的数据存取外,另外一种比较方便快捷的方法则是通过Socket与桌面电脑完成信息的交换。
采用Visaul Basic.Net 2003进行PPC和桌面电脑的程序编写,VB.Net已经完全不同于过去的VB,它的诸多新特性以及依托.Net平台强大的面向对象体系使VB.Net焕然一新,不仅编写桌面程序更加轻松快捷而且更可快速的、可视化的开发以Pocket PC为平台的智能设备程序。
.Net框架是一种新的计算平台,可以简单理解为组件库或者类库,类似于MFC和VCL,但是却比它们更加强大和易用。.NET框架具有两个主要组件:公共语言运行库和 .NET 框架类库。公共语言运行库是 .NET 框架的基础,可以将运行库看作一个在执行时管理代码的代理,它提供核心服务(如内存管理、线程管理和远程处理等)。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。.NET 框架类库是一个与公共语言运行库紧密集成的可重用的类型集合,该类库是面向对象的,.NET 框架类库能够完成一系列常见编程任务,包括诸如字符串管理、数据收集、数据库连接以及文件访问等任务。
.Net框架精简版是完整.Net框架的子集。它是对完整的 .Net框架进行精简后得到的版本,虽然其规模大大减小,但多数功能仍然保持完整。使用.NET框架精简版可以针对Pocket PC和其他Windows CE .NET设备进行开发和部署,提高开发人员的工作效率
VB.Net编译的桌面程序在目标机器上需要.Net框架的支持才能运行,而编译过的PPC程序需要在目标PPC上装载.Net框架精简版后方可运行。
<!--[if !supportLists]--> 二、<!--[endif]-->设计思路
在.Net框架中System.Net.Sockets命名空间为需要严密控制网络访问的开发提供了 Windows Sockets (Winsock) 接口的托管实现,该命名空间中包含了与Socket相关的类、接口和枚举,主要包括实现 Berkeley 套接字接口的Socket类、用于 TCP 网络客户端侦听连接的TcpListener类、为 TCP 网络服务提供客户端连接的TcpClient类以及提供无连接的发送和接收用户数据文报 (UDP) 网络服务等。该命名空间下的大部分类都受.Net框架精简版的支持,也就是说实现这些对象的代码完全可以在装载有.Net框架精简版的PPC上运行。
    可以把PPC当作局域网中的一个终端来与桌面电脑连接,它们之间有多种物理连接方式,通常可以使用USB线缆配合ActiveSync直接与桌面电脑连接,当然,若PPC和桌面电脑同时具备其它的连接方式,比如无线WiFi(IEEE 802.1x)、蓝牙等都可以组成相应的无线局域网络。
PPC 上编写客户端程序并实现 TcpClient 类,用于连接、发送和接收流数据。在桌面电脑上我们设计 Socket 服务端程序并实现 TcpListener 类和 Socket 类,用于侦听和接受传入连接的请求。 Socket 类为网络通信提供了一套非常丰富的方法和属性,服务程序可以使用 Listen 方法侦听连接。 Accept 方法处理任何传入的连接请求,并返回可用于与远程主机进行数据通信的 Socket 如果当前使用的是无连接协议(如 UDP ),则根本不需要侦听连接。实际上 TcpClient 类和 TcpListener 类为 Socket 通信提供了比 Socket 类更简单、对用户更友好的接口,如果编写较简单的应用程序,而且只需同步数据传输,则可以考虑使用 TcpClient TcpListener UdpClient
Listener  =  New  TcpListener(System.Net.IPAddress.Parse( " 192.200.0.100 " ), " 10200 " )
Listener.Start()
Label1.Text 
=  " 正在 192.200.0.100:10200 处侦听.. "
<!--[if !supportLists]--> 一、<!--[endif]-->程序的具体实现
1、创建PPC客户端程序
启动 Visual Studio .Net 2003 ,新建 Visaul Basic 项目,并选择“智能设备应用程序”,选择“ Pocket PC ”平台的“ Windows 应用程序”并创建项目。 Pocket PC 平台是 Windows CE 平台的子集, Windows CE 系统的应用更加广泛。项目创建完后, Visaul Studio.Net 会创建一个默认的主窗体 Form1 ,在窗体上分别放置两个 Panel 控件、四个 Label 控件、三个 TextBox 控件和两个 Button 控件。


设计PPC程序的Form窗体与桌面程序没有太多差别,只是少了一些PPC上所不支持的属性,但是属性的名称并没有变化。在PPC上没有窗口最小化的实际意义,主窗体的MinimizeBox属性必须设置成False,否则,当需要退出程序点击标题栏最右侧的关闭按钮时,程序并没有真正退出而是隐藏在后台,程序需要重新激活才能回到前台。或者可以向一个Button添加关闭主窗体的代码:

Private  Sub  Button3_Click( ByVal  sender  As  System.Object,  ByVal  e  As  System.EventArgs)
Handles
 Button3.Click
        
Me .Close()
End Sub


Me 为VB.Net中的关键字,可以引用当前在其中执行代码的类或结构的特定实例。Me 的行为与引用当前实例的对象变量或结构变量类似。此例Me代表主窗体的实例Form1。使 用 TcpClient向TcpListener 或 Socket 侦听器连接并交换数据,可以使用下面两种方法之一连接到侦听器:
( 1)创建一个 TcpClient,并调用三个可用的 Connect 方法之一。
( 2)使用远程主机的主机名和端口号创建 TcpClient。此构造函数将自动尝试一个连接。
TcpClient的Connect 方法使用指定的主机名和端口号将客户端连接到 TCP 主机,重载函数原型为:
使用指定的远程网络终结点将客户端连接到远程 TCP 主机。
Overloads Public Sub Connect(IPEndPoint)
使用指定的 IP 地址和端口号将客户端连接到 TCP 主机。
 
Overloads Public Sub Connect(IPAddress, Integer)
将客户端连接到指定主机上的指定端口。
 
Overloads Public Sub Connect(String, Integer)
我们使用指定的主机名称和端口号将客户端连接到 TCP 主机,在堆栈中创建TcpClient对象的实例,当执行退出当前过程或函数时,堆栈中的资源会自动清除,保证内存空间被正确释放。连接成功后要发送和接收数据,使用 GetStream 方法来获取一个 NetworkStream,NetworkStream为基础数据流,调用 NetworkStream 的 Write 和 Read 方法与远程主机之间发送和接收数据。当发送操作结束后使用 TcpClient的 Close 方法断开连接、关闭对象并释放与 TcpClient 关联的所有资源。
双击“连接”按钮,编写连接代码:
 ‘创建TcpClient对象的实例
  Client 
=  New  TcpClient
  ‘通过计算机名称和端口号连接到指定的计算机
  Client.Connect(“
192.200 . 0.100 ”, 10200 )
SendData 
= ”由PPC传递过来的数据 – Author:Risen”
  ‘按一定的编码规则对要传递的数据进行编码
  Buffer 
=  Encoding.UTF8.GetBytes(SendData)
  ‘向已连接的服务程序发送数据
  Client.GetStream().Write(Buffer, 
0 , Buffer.Length)
‘DataAvailable 指示NetworkStream 上是否有可用的数据。如果可以在流上读取数据,则为 
true
‘否则为 
false ,只要有数据存在就等待传输完毕
While  Not  Client.GetStream.DataAvailable()
    Application.DoEvents()
  
End  While
  ‘接收由服务程序传递回客户端的数据并显示在对话框上
  
If  Client.GetStream.DataAvailable()  Then
     Client.GetStream().Read(InBuff, 
0 , InBuff.Length)
     rtndata 
=  " 服务程序已经成功收到指令,在 "  &  System.Text.Encoding.Default.GetString(InBuff,  0 , InBuff.Length)
     
MsgBox (rtndata)
  
End  If
  ‘断开连接、关闭对象并释放与 TcpClient 关联的所有资源
Client.Close()
正确编译上述代码还需要在源文件的头部加入使用命名空间的引用, 才能正确使用命名空间中的所有枚举、结构、类或模块等。
Imports  System.Net.Sockets ‘ <- 添加需要导入的命名空间
Imports  System.Text  ‘ <- 添加需要导入的命名空间

Public  Class  Form
跟踪调试PPC程序需要在适当的模拟器下进行,譬如系统默认的PocketPC2002 模拟器,程序调试无误后可以连接到实际的PocketPC设备运行。实际部署到PPC设备需要在连接的桌面电脑上安装Microsoft ActiveSync将程序传输到用户目录中。
2、创建桌面服务端程序
启动Visual Studio .Net 2003,新建Visaul Basic项目,并选择“Windows应用程序”创建项目。项目创建完后,Visaul Studio.Net会创建一个默认的主窗体Form1,在窗体上分别放置三个Label控件、两个TextBox控件、一个列表框控件和一个Button控件。
创建全局的 TcpListener 对象的实例来侦听特定的端口,代码片段如下:
‘创建在本机IP地址和端口侦听的TcpListener对象的实例
Listener 
=  New  TcpListener(“ 192.200 . 0.100 ”,  10200 )
' 开始侦听
Listener.Start()
‘侦听状态标志
Listening 
=  True
Label1.Text 
=  " 正在 192.200.0.100:10200 处侦听.. "
通过计时器定时检测侦听器有无连接请求以及多线程来处理接收到的数据:
' 声明创建线程时,使用 ThreadStart 委托作为其唯一参数的构造函数创建 Thread 类的新实例
Dim  CurThreadStart  As  ThreadStart
Dim  CurThread  As  Thread

' 检测侦听器是否有挂起的连接请求,没有则退出计时器事件
If  Not  Listener.Pending()  Then
  
Exit Sub
End  If
' 有连接的请求则将计时器暂停,准备进行处理
tmProcessRequest.Enabled  =  False
' 创建线程委托,传递需要操作的过程的地址
CurThreadStart  =  New  ThreadStart( AddressOf  ProcessRequest)
CurThread 
=  New  Thread(CurThreadStart)
' 开始一个线程
CurThread.Start()
' 重新启动计时器
tmProcessRequest.Enabled  =  True
将计时器触发事件的频率Interval(以毫秒为单位)适当调节可以改变服务程序响应连接请求的快慢。
计时器不断循环,一旦发现有连接的请求就会创建一个线程专门来处理这个连接,创建线程时需要传递处理连接的过程或函数的地址以被线程调用。
服务程序通过已连接的 Socket 获取数据,接收到的数据按相应的编码规则进行解码并将信息添加到列表框中:
CurThread  =  System.Threading.Thread.CurrentThread()
‘接受挂起的连接请求并返回可用来发送和接收数据的Socket
CurSocket 
=  Listener.AcceptSocket

While  Listening
If  CurSocket.Available  >  0  Then
  ‘接收来自绑定的Socket的数据
Bytes 
=  CurSocket.Receive(Buffer, Buffer.Length,  0 )
‘将接收到的数据转化成相应编码的字符串
ReceivedData
=  Encoding.UTF8.GetString(Buffer)
SyncLock  CurThread
       lbReceived.Items.Add(ReceivedData)
End  SyncLock
TCPListener.AcceptSocket接受挂起的连接请求,并且返回用于发送和接收数据的 Socket,此 Socket 继续用于和新连接上的客户端通信。
SyncLock 语句确保多个线程不会同时执行向列表框添加数据的操作。当线程到达 SyncLock 块时,将计算表达式并保持此互斥性,直到在表达式返回的对象上有锁为止。这防止了表达式在多个线程运行期间更改值,从而避免代码产生意外的结果。
向客户端返回服务端处理后的消息,代码片段如下:
' 格式化返回消息 - 这是服务器端处理后的结果并返回到客户端。
BacktoClientData  =  System.DateTime.Now ‘向客户端传递服务端程序处理时的时间
Buffer 
=  Encoding.UTF8.GetBytes(BacktoClientData.ToCharArray)
' 通过打开的套接字将结果发送回客户端应用程序,然后关闭该套接字。
CurSocket.Send(Buffer, Buffer.Length,  0 )
CurSocket.Close()
编译桌面服务端程序运行效果如下图所示:
当服务程序处理完一个连接后就向相应的PPC客户端返回一条成功信息,如下图所示:

至此,PPC客户端程序和桌面服务端程序编写完毕,该系统在安装WindowsXP SP2的桌面电脑和Dell X3i 的PPC上测试通过。
<!--[if !supportLists]--> 一、<!--[endif]-->结论
本程序简单介绍了 PC PPC 之间 Socket 通信方法,在实际应用中还有很多细节要做,并且还有可以拓展的地方。该模型为实现 PC PPC 间复杂的信息交互,创建复杂的无线信息系统提供了一定技术基础。
◆ 01.htm 1、怎么用mscomm控件检测modem是否计算机联接正确?2、如何用mscomm挂断modem别的电话机的连接?(已接通) ◆ 02.htm CWinInetConnection---一个封装了WinInet API函数的类 ◆ 03.htm MODEM通讯意外处理 ◆ 04.htm MsComm 文字传输 ◆ 05.htm PING一个IP地址(向它发送一个数据包并等待回应) ◆ 06.htm SMTP协议简介 (Simple Mail Transfer Protocol) ◆ 07.htm VB5.0 中远程数据库的访问 ◆ 08.htm VB下如何编写CRC校验程序 ◆ 09.htm VBWinsock控制的UDP协议的使用 ◆ 10.htm Visual Basic 6中发送邮件的新方法 ◆ 11.htm Visual Basic通信程序设计 ◆ 12.htm Whois 示例程序 ◆ 13.htm Winsock Terminal示例程序 ◆ 14.htm WinSock断开导致客户端问题 ◆ 15.htm 把Outlook信箱中的附件另存为 ◆ 16.htm 保证连网计算机时同步 ◆ 17.htm 编写网络寻呼机 ◆ 18.htm 编制自已的电话录音小程序 ◆ 19.htm 程序中如何启动默认的拨号连接 ◆ 20.htm 程序中如何启动默认的拨号连接? ◆ 21.htm 打开器并进入指定网址 ◆ 22.htm 打开一个直接到自己主页的器 ◆ 23.htm 得到用户的IP地址 ◆ 24.htm 电话拨号 ◆ 25.htm 电子邮件的标准格式 (RFC 822) ◆ 26.htm 断开拨号网络的连接 ◆ 27.htm 断开 Internet 的连接 ◆ 28.htm 发送电子邮件附件 ◆ 29.htm 发送电子邮件附件1 ◆ 30.htm 发送电子邮件附件2 ◆ 31.htm 发送电子邮件附件3 ◆ 32.htm 发送电子邮件附件4 ◆ 33.htm 获得用户网络登录名 ◆ 34.htm 基 于Win95 的VB5 串 口 通 信 程 序 ◆ 35.htm 基于Win95的VB5串口通信程序 ◆ 36.htm 几个设置IE的API ◆ 37.htm 检测运程数据传送的断线 ◆ 38.htm 简单的聊天程序 ◆ 39.htm 简单电子邮件发送程序 ◆ 40.htm 建立拨号联接 ◆ 41.htm 将所有窗口最小化 ◆ 42.htm 利用IE控件访问Internet ◆ 43.htm 利用IE控件设计简易器 ◆ 44.htm 利用Mscomm32控件判断MODEM是否打开,或者正在工作,并且判断拨号时是否遇忙音 ◆ 45.htm 利用TAPI进行电话拨号 ◆ 46.htm 利用VB访问Internet ◆ 47.htm 利用VB设计聊天室 ◆ 48.htm 利用Visual Basic实现无线通讯 ◆ 49.htm 利用Winsock控件实现局域网通信 ◆ 50.htm 强制一个本地或远程NT系统关闭 ◆ 51.htm 取得网卡序列号 ◆ 52.htm 如何从 Internet 上取回某一个网页的內容? ◆ 53.htm 如何检测是否已连接到Internet? ◆ 54.htm 如何利用Winsock控件编写自己的Internet程序 ◆ 55.htm 如何每天抓取 Internet 上某一个网页中的图片来更换桌面的壁纸? ◆ 56.htm 如何启动拨号网路中的连线? ◆ 57.htm 如何使用MSCOMM32.OCX发送大于80H的字符,可否给个示例程序 ◆ 58.htm 如何通过VB获取网卡地址 ◆ 59.htm 如何用VB打开默认器或默认发信程序? ◆ 60.htm 如何用Visual Basic编写小型的网络系统 ◆ 61.htm 如何在程序中启动 NT 的【拨号连接】对话框 ◆ 62.htm 如何在程序中启动 NT 的【拨号连接】对话框? ◆ 63.htm 如何在网页上使用 VB5 制作的 ActiveX 控件? ◆ 64.htm 如何中断【拨号网络连接】 ◆ 65.htm 设计Browser及FTP程序 ◆ 66.htm 设计Chat程序 ◆ 67.htm 设计E-mail程序 ◆ 68.htm 设置计算机名称 ◆ 69.htm 使用VB获得一页的HTML代码 ◆ 70.htm 使用VB收发电子邮件 ◆ 71.htm 使用标签控件调出器 ◆ 72.htm 使用超链接和发送Email ◆ 73.htm 使用器的文件复制对话框 ◆ 74.htm 输入/输出篇 ◆ 75.htm 通过WnetEnumResource函数获得网络资源 ◆ 76.htm 通往 Internet 的捷径 ◆ 77.htm 显示计算机的名称 ◆ 78.htm 用 MAPI 控件实现发送邮件 ◆ 79.htm 用 WinSock 控件下载文件 ◆ 80.htm 用 Winsock 实现聊天的程序 ◆ 81.htm 用Internet Transfer编写FTP程序 ◆ 82.htm 用Sockets发送电子邮件 ◆ 83.htm 用VB 创 建 自 己 的 通 信 程 序 ◆ 84.htm 用VB5.0开发通信软件的技巧 ◆ 85.htm 用VB5开发IE ◆ 86.htm 用VB编写网络寻呼 ◆ 87.htm 用VB编写小型的网络系统 ◆ 88.htm 用VB创建自己的通信程序 ◆ 89.htm 用VB构建Internet的应用[微软提供] ◆ 90.htm 用VB开发标准CGI程序 ◆ 91.htm 用VB实现客户——服务器(TCP IP)编程实例 ◆ 92.htm 用VB实现客户服务器(TCP、IP)编程实例 ◆ 93.htm 用VB实现聊天讨论室和点对点会话 ◆ 94.htm 用VB写一个定时PING某IP的程序 ◆ 95.htm 用VB制作器 ◆ 96.htm 用Visual Basic 5.0设计E-mail程序(MAPI) ◆ 97.htm 用Visual Basic6.0编写客户服务器程序 ◆ 98.htm 用Visual Basic创建FTP组件 ◆ 99.htm 用Visual Basic开发数据库器 ◆ 100.htm 用Visual Basic轻松地设计Browser及Ftp程序 ◆ 101.htm 用Winsock控件发信Email ◆ 102.htm 用Winsock控件实现文件的下载 ◆ 103.htm 用Winsock实现点对点通信 ◆ 104.htm 邮件检查程序(二) ◆ 105.htm 邮件检查程序(一) ◆ 106.htm 在VB程序中怎样挂断拨号网络 ◆ 107.htm 在VB中操纵OLE服务器应用程序 ◆ 108.htm 在VB利用UDP协议编写聊天程序 ◆ 109.htm 在VB中模拟实现邮件传输 ◆ 110.htm 在VB中如何得到网络中某一台电脑(电脑)的网卡地质? (自己的) ◆ 111.htm 在VB中实现文件上传 ◆ 112.htm 在VB中实现文件上载 ◆ 113.htm 在VB中使用UDP协议 ◆ 114.htm 在VB中用Outlook发电子邮件 ◆ 115.htm 在WindowsNT网络中广播消息 ◆ 116.htm 在程序中打开 Internet 拨号连接窗口 ◆ 117.htm 在一个单位内部或通过广域协议(如X.25)互联的行业内部都有几十或上万台计算机互联,用Intranet虽然可以建立聊天室,但实现点对点实时对话却比较困难。本人用WinsockVB自制了一套聊天室和对话系统,特拿来供同行们参考。 ◆ 118.htm 在应用中集成器 ◆ 119.htm 在桌面上建立一个 Internet 快捷键 ◆ 120.htm 怎样接收电子邮件(POP3协议简介) ◆ 121.htm 怎样用VB得知系统当前是否处于internet链结状态 ◆ 122.htm 制作自己的网络搜索软件 ◆ 123.htm 自动更新工作站的应用程序 ◆ 124.htm 自己的IE——用VB制作器 ◆ 125.htm HTTP协议(学习笔记) ◆ 126.htm HTTP协议四--关于Chunked编码 ◆ 127.htm IE器完全控制 ◆ 128.htm OICQ服务器系统通讯协议 ◆ 129.htm POP3协议的基本命令 ◆ 130.htm RAS API上的其他Function ◆ 131.htm VB + API 获取 IE 的 “代理服务器” 配制 ◆ 132.htm vb调用winInet API接口post数据到指定的url ◆ 133.htm vb开发通信软件 ◆ 134.htm vb设计数据库电子邮件程序(1) ◆ 135.htm vb设计数据库电子邮件程序(2) ◆ 136.htm vb设计数据库电子邮件程序(3) ◆ 137.htm vb设计数据库电子邮件程序(4) ◆ 138.htm vb设计数据库电子邮件程序(5) ◆ 139.htm vb设计数据库电子邮件程序(6) ◆ 140.htm VB实现应用程序在局域网上自动更新 ◆ 141.htm VB邮件检查程序 ◆ 142.htm vb中从域名得到IP及从IP得到域名 ◆ 143.htm VB中检测是否连网 ◆ 144.htm WebClass实现动态WEB编程之理论篇 ◆ 145.htm Winsocket网络编程谈 ◆ 146.htm Winsock编程框架 ◆ 147.htm Winsock错误代码一览表 ◆ 148.htm 程式自动呼叫拨号网络(RAS API) ◆ 149.htm 打开一个超连接 ◆ 150.htm 得到登入windows 的人的id ◆ 151.htm 访问Internet并调用Explorer ◆ 152.htm 非同步文件下载类 ◆ 153.htm 给Outlook的所有用户发送信件 ◆ 154.htm 获得网卡的MAC地址 ◆ 155.htm 基于WinSock的小型网络管理系统及其实现 ◆ 156.htm 检测是否连接到Internet ◆ 157.htm 检测网络是否连通 ◆ 158.htm 建立Web的超链接树形图 ◆ 159.htm 建立你自己的器-Properties ◆ 160.htm 建立你自己的器-查看源文件 ◆ 161.htm 建立你自己的器-打印 ◆ 162.htm 建立你自己的器-打印设置 ◆ 163.htm 建立你自己的器-发送到FontPage ◆ 164.htm 建立你自己的器-发送到Visual Interdev ◆ 165.htm 建立你自己的器-发送到软盘 ◆ 166.htm 建立你自己的器-复制 ◆ 167.htm 建立你自己的器-另存为 ◆ 168.htm 建立你自己的器-全选 ◆ 169.htm 建立你自己的器-页面设置 ◆ 170.htm 开发通信软件的技术技巧 ◆ 171.htm 开发网络应用的5个技巧 ◆ 172.htm 利用RAS调用在VB6.0中实现拨号上网 ◆ 173.htm 利用VB提取HTML文件中的EMAIL地址 ◆ 174.htm 枚举出局域网上所有网络资源 ◆ 175.htm 面向Internet的开发工具 ◆ 176.htm 你也可以YAI--VB5中Winsock控件的使用 ◆ 177.htm 判断一个文件是否在IE的缓存中 ◆ 178.htm 启动拨号网络中的连接 ◆ 179.htm 浅谈HTTP协议(二)--返回值 ◆ 180.htm 浅谈HTTP协议(一)--结构 ◆ 181.htm 如何利用 WebBrowser 控件显示 .GIF 动画? ◆ 182.htm 如何映射(中断网络磁盘) ◆ 183.htm 设计E-mail的接收部分 ◆ 184.htm 设置器默认网址 ◆ 185.htm 实现端口对端口的聊天 ◆ 186.htm 使用ASP建立Http组件 ◆ 187.htm 使用VB编写纯ASP程序 ◆ 188.htm 使用vb获取网上邻居里的计算机名 ◆ 189.htm 使用VB建立Web Server ◆ 190.htm 使用Visual Basic开发通讯软件 ◆ 191.htm 使用资源工具包执行本地和远程重新启动 ◆ 192.htm 谈谈远程控制中关于搜索、控制计算机的功能 ◆ 193.htm 压缩 Html ◆ 194.htm 用ASP、VB和XML建立互联网应用程序(1) ◆ 195.htm 用ASP、VB和XML建立互联网应用程序(2) ◆ 196.htm 用ASP、VB和XML建立互联网应用程序(3) ◆ 197.htm 用ASP、VB和XML建立互联网应用程序(4) ◆ 198.htm 用COMMUNICATION控件进行数据采集(学习笔记) ◆ 199.htm 用OLE自动化Outlook ◆ 200.htm ActiveX控件用于DHTML开发 ◆ 201.htm 用VB编写ActiveX DLL实现ASP编程 ◆ 202.htm 用VB编写Windows CGI应用程序 ◆ 203.htm 用VB编写标准CGI程序(上) ◆ 204.htm 用VB编写标准CGI程序(下) ◆ 205.htm 用VB编写收发电子邮件程序 ◆ 206.htm 用VB编写网络监控软件 ◆ 207.htm 用VB编写异步多线程下载程序 ◆ 208.htm 用VB导入导出IE器收藏夹 ◆ 209.htm 用VB定制合路器 ◆ 210.htm 用VB和XML建立集中式应用程序 ◆ 211.htm 用VB将Html转换为文本文件 ◆ 212.htm 用VB开发分布式应用 ◆ 213.htm 用VB设计基于代理服务器的网络计费系统 ◆ 214.htm 用VB制作文件下载程序 ◆ 215.htm 用Visual Basic 实现无线通讯 ◆ 216.htm 用Winsock制作一套聊天室和对话系统 ◆ 217.htm 远程共享显示及声音的实现 ◆ 218.htm 远程启动机器ABC API解决方案 ◆ 219.htm 远程启动机器ABC WMI解决方案 ◆ 220.htm 在VB5中利用Winsock和msDNS控件进行 ◆ 221.htm 找出计算机上当前登录入网的用户 ◆ 222.htm 用VB5 Winsock控件创建TCP(IP)客户机 服务器程序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值