• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
用VB创建自己的通信程序
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
用VB创建自己的通信程序
软件发布 用VB创建自己的通信程序
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 编程技术 >> VB & VB.NET教程 >> 用VB创建自己的通信程序

用VB创建自己的通信程序

添加时间: 2006-2-13 9:49:44  作者: VB教程  阅读次数:152   来源: http://www.d9soft.com

       

  Winsock控件建立在TCP、UDP的协议基础上,以完成计算机网络间的通信。下面将详细的介绍具体的程序创建过程,以便使大家更好的理解程序的源代码。

  服务器端程序的运行过程是:

  (1)服务器端要设置好侦听端口即LocalPort属性,作为侦听端口的值必须是一个整数(一定要是其它TCP/IP应用程序没有用过的值,并且不能与系统缺省端口冲突)。

  (2)用Listen方法进入侦听状态,等待客户机的连接请求。

  (3)当客户机发出连接请求时,使服务器产生一个ConnectionRequest事件,且该事件得到一个参数equestID。

  (4)服务器程序用Accept方法接受客户机requestID请求。这样,服务器程序便可以用SendData方法来发送数据了。但是,Accept方法必须用上一个步得到的requestID作为其参数。

  (5)当服务器程序接收到数据时,便会产生一个DataArrial事件,参数BytesTotal包含接收到的数据字节数。在该事件中,可以用GetData方法接收数据。

  (6)如果接收到Close事件,则用Close方法关闭TCP/IP连接。

   客户机的程序的运行过程是:

  (1)在客户程序中设置Remmotehost属性,以便指定运行服务器程序的主机名,该字符串可以在服务器“ 控制面板 网络 标识 计算机”中查到。

  (2)设置RemotePort属性,以便指定服务器程序的侦听端口(其设置方法与服务器端类似)。

  (3)使用Connect方法,向服务器提出连接请求。

  (4)当服务器程序接受到客户机程序的请求后,客户机程序产生Connect事件,就可以用SendData方法发送数据了。

  (5)当客户机程序接收到数据时,便会产生DataArrival事件,参数BytesTotal包含接收到的数据字节数。类似的在该事件中也可以用GetData方法接收数据。

  (6)如果客户机程序接收到Close,则用Close方法关闭连接。

  使用说明:

  本程序实现了两台计算机之间的自由通信。先将编译好的程序分别放入两台已联网的计算机的 开始 启动 中,这样每次启动时,程序将会自动运行,程序启动时将以最小化的形式出现在任务栏中,当用户使用时可以通过点击任务栏上的该程序图标来激活该程序,一方将程序激活后,在“请输入所要连接的主机名:“右侧的编辑框中输入需要连接的计算机名,并敲“连接”键便可连接成功。此时在“接收窗口:”下的编辑框中将会出现“连接成功”的提示。然后就可以在“发送窗口:”下的编辑框中输入要说的话了,输入完毕后敲“发送”键后便可使另一方收到你的话了,如果另一方的程序尚未正常化,那么另一方程序将发出提示音并使任务栏中程序的图标闪烁,直到另一方将程序激活为正常化并与你对话为止。如果暂时停止对话可以点击该程序的极小化按钮将程序最小化,一旦需要再次通话可直接激活该程序发送过去,如果另一方的程序尚未正常化,那么程序仍将发出提示音并使开使栏中程序的小图标闪烁,直到另一方将程序正常化并与你对话为止。所以,无论什么时候想与对方通话只要对方开了机便可以实现。当需要断开连接时请按“关闭”键,该程序能自动发送结束消息,使对方能够知道你已断开连接,以结束程序运行。

  FORM的构造如下:

  Timer控件----MMXControl控件----Gettest控件

  Winsock控件----CommandButton控件----Test控件

  一段的源程序如下:

  Dim sign As Boolean

  Dim flashsign As Boolean

  Dim con As Boolean

  

  Private Sub transfer_Click()

  On Error GoTo transfererror

  Timer1.Enabled = False

  gettext.Text = " 陈涛说:" + sendtext.Text + Chr(13) + Chr(10) + gettext.Text

  Dim say As String

  If sign = True Then

  say = " 陈涛说:" + sendtext.Text + Chr(13) + Chr(10)

  Winsockout.SendData say

  Else

  say = " 陈涛说:" + sendtext.Text + Chr(13) + Chr(10)

  Winsock1.SendData say

  End If

  sendtext.Text = ""

  Exit Sub

  transfererror:

  Dim a As String

  a = " 计算机还没有进入网络或者是它的相应程序没有运行!"

  MsgBox (a)

  End

  Exit Sub

  End Sub

  Private Sub conbut_Click()

  On Error GoTo connecterror

  Winsockout.RemoteHost = hostnametext.Text

  Winsockout.Connect

  sign = True

  conbut.Default = False

  transfer.Default = True

  Exit Sub

  connecterror:

  Dim a As String

  a = "计算机还没有进入网络或者是它的相应程序没有运行!"

  Dim b As String

  b = " 要连接的机器名输入错误,"

  MsgBox (b + a)

  End

  Exit Sub

  End Sub

  Private Sub exitbut_Click()

  On Error GoTo exiterror

  If con = True Then

  End

  End If

  If sign = True Then

  Winsockout.SendData "中断联接!"

  Else

  Winsock1.SendData "中断联接!"

  End If

  Exit Sub

  exiterror:

  Dim a As String

  a = "计算机还没有进入网络或者是它的相应程序没有运行!"

  MsgBox (a)

  End

  Exit Sub

  End Sub

  Private Sub Form_Load()

  Winsock1.Listen

  sign = False

  flashsign = True

  Timer1.Enabled = False

  con = False

  conbut.Default = True

  End Sub

  Private Sub hostnametext_Change()

  conbut.Enabled = True

  End Sub

  Private Sub Timer1_Timer()

  If Form1.WindowState = 1 Then

  If flashsign = True Then

  Form1.Icon = LoadPicture(App.Path + "\zhcn010.ico")

  flashsign = False

  ElseIf flashsign = False Then

  Form1.Icon = LoadPicture(App.Path + "\zhcn020.ico")

  flashsign = True

  End If

  End If

  End Sub

  Private Sub Winsock1_Close()

  conbut.Enabled = True

  hostnametext.Enabled = True

  Winsock1.Close

  End Sub

  Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)

  If Winsock1.State <> 0 Then

  Winsock1.Close

  End If

  transfer.Default = True

  If Form1.WindowState = 1 Then

  Timer1.Enabled = True

  MMControl1.Notify = False

  Form1.MMControl1.Wait = True

  Form1.MMControl1.Shareable = False

  Form1.MMControl1.DeviceType = "waveaudio"

  Form1.MMControl1.filename = App.Path + "\mcitest.wav"

  Form1.MMControl1.Command = "Open"

  Form1.MMControl1.Command = "play"

  Form1.MMControl1.Command = "prev"

  End If

  conbut.Enabled = False

  hostnametext.Enabled = False

  sendtext.Enabled = True

  gettext.Enabled = True

  gettext.Text = " 连 接 成 功!" + Chr(13) + Chr(10)

  sign = False

  Winsock1.Accept requestID

  End Sub

  Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

  Dim str As String

  If Form1.WindowState = 1 Then

  Timer1.Enabled = True

  MMControl1.Notify = False

  Form1.MMControl1.Wait = True

  Form1.MMControl1.Shareable = False

  Form1.MMControl1.DeviceType = "waveaudio"

  Form1.MMControl1.filename = App.Path + "\mcitest.wav"

  Form1.MMControl1.Command = "Open"

  Form1.MMControl1.Command = "play"

  Form1.MMControl1.Command = "prev"

  End If

  Winsock1.GetData str

  If str = "中断联接!"Then

  con = True

  Winsock1.SendData "可以中断联接!"

  ElseIf str = "可以中断联接!" Then

  End

  End If

  gettext.Text = str + gettext.Text

  End Sub

  Private Sub Winsockout_Close()

  hostnametext.Enabled = True

  Winsockout.Close

  End Sub

  Private Sub Winsockout_Connect()

  Form1.WindowState = 0

  gettext.Enabled = True

  sendtext.Enabled = True

  conbut.Enabled = False

  gettext.Text = "连接成功!" + Chr(13) + Chr(10)

  End Sub

  Private Sub Winsockout_DataAr

 

上下文章:

 

上一篇文章: 利用VB6.0开发基于IIS的应用程序 下一篇文章: 让你的VB程序支持多国语言的切换

相关文章:

  • Vista驱动程序兼容性另微软汗颜
  • 后门程序变种现身互联网
  • 谷歌发布Gmail小程序 增加快速查阅等功能
  • 雅虎中止优化Vista 的IM程序
  • 计算机病毒中心:重视微软高危漏洞补丁程序

相关软件:

  • 终极程序加密器 3.25
  • 程序猫(PC)光驱开关 V1.0
  • 程序监控专家 3.75
  • 网络通信调试工具 V1.0
  • C/C++程序设计学习与实验系统 2008.14
  • 冲击波(Worm.Msblast)安全更新程序 For WinXP 简体中文版

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

编程技术分类导航

  • ASP & ASP.NET教程
  • PHP教程
  • JSP教程
  • C/C++教程
  • VB & VB.NET教程
  • VC教程
  • Delphi教程
  • BCB教程
  • VFP教程
  • PB教程
  • JAVA教程
  • XML教程
  • C#教程
  • CGI教程

本类经典文章推荐

  • VB.net2008创建发送与接收端程序
  • C++程序设计之四书五经
  • VB入门教程之四
  • VB入门教程之三
  • VB入门教程之二
  • VB入门教程之一
  • 压缩被DBGIRD控件正在使用的MDB数...
  • 谈谈VB的数据库编程方式
  • 在VB中用DAO实现数据库编程
  • Data控件使用有密码的Access数据库

VB & VB.NET教程阅读排行

  • VB入门教程之一
  • VB入门教程之二
  • VB入门教程之三
  • VB入门教程之四
  • 如何编写高质量的VB代码
  • 初学者必知:VB10个小编程
  • VB访问SQL Server数据库技术全揭密
  • 怎样在VB中控制Word?
  • 用DAO或ADO正确访问Access 2000
  • VB中列表框的使用技巧说明

编程技术阅读总排行

  • VB入门教程之一
  • Java连接数据库实例
  • VC++之List Box/Check List Box控...
  • 第二章 PowerBuilder 入门之创建新...
  • VC++ List Ctrl控件
  • 第一章 什么是PowerBuilder
  • VC++ Combo Box/Combo Box Ex控件
  • 学C++不得不看的一篇文章
  • VB入门教程之二
  • VC++之Button控件

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有