zoukankan      html  css  js  c++  java
  • [VB] 简单的聊天程序

    来源:http://www.fenbi360.net/content.aspx?id=1100&t=ct

    下载地址:请到上面地址下载

          这是一个简单的聊天程序(VB6.0实现),它可以实现在局域网中两台主机间的在线聊天,程序很简单,只有短短的几十行,但“麻雀虽小,五脏俱全”,它已经有了聊天程序的大体框架。我们在它的基础上稍加改进,就能做出不错的聊天小软件呢。

    主打控件WINSOCK解析:

      作为这个CHAT程序的主打控件WINSOCKwinsock小图标,我们来看看它的一些常用属性、事件和方法。利用WinSock控件可以与远程计算机建立连接,并通过用户数据文报协议 (UDP)或者传输控制协议 (TCP)进行数据交换。这两种协议都可以用来创建客户与服务器应用程序。与 Timer 控件类似,WinSock 控件在运行时是不可见的。

      它的主要用途有:

      1、创建收集用户信息的客户端应用程序,并将收集的信息发送到某中央服务器。
      2、创建一个服务器应用程序,作为多个用户的数据的汇入点。
      3、创建“聊天”应用程序。

      WINSOCK的主要属性有:

    WINSOCK的主要属性  PROTOCOL(控制协议)属性,在这个例子中,我们将PROTOCOL属性设置为sckUDPProtocol。这个协议一般用于简单数据交换的情况,而如果我们要编写INTERNET应用程序,多采用TCP协议。
      属性RemoteHost是远程主机的地址,LocalPort、RemotePort分别本地主机的端口和远程主机端口,对客户来说,该属性指定发送数据的本地端口,而对于服务器来说,这是用于侦听的本地端口,我们在设置这两个属性时必须保证两台主机的端口值符合下面规则,即主机1的LocalPort等于主机2的RemotePort值,同样主机1的RemotePort等于主机2的LocalPort值,这样才能保证两机通讯的正常进行。
      LocalIP属性用于返回本地机器的 IP 地址,格式是 IP 地址加点的字符串 (xxx.xxx.xxx.xxx)。

      在本例中我们用到了以下几个WINSOCK的方法:
      在创建 UDP 应用程序时调用了 Bind 方法,这是必须的。Bind 方法的作用是为控件“保留”一个本地端口。例如,如果将控件绑定到1001 号端口,那么其它应用程序将不能使用该端口进行“监听”。该方法阻止其它应用程序使用同样的端口。
      SendData 方法用于发送一条数据给另一台主机,使用这个方法的语法是:        WinSock.SendData [要发送的数据]
      GetData 方法。当DataArrival事件出现时,代码调用 GetData 方法获取数据,并将数据存储在字符串变量中。使用语法是:WinSock.GetData [接收数据的变量]

      DataArrival事件:在本例中我们使用了DataArrival事件,DataArrival事件在当新数据到达时出现使用的语法为:object_DataArrival (bytesTotal As Long)        DataArrival 事件的语法包含下面部分: object 对象表达式,其值是“应用于”列表中的对象。 bytesTotal Long型 ,可获取的数据总数量。
      需要说明的是:如果没有获取一个 GetData 调用中的全部数据,则事件不会出现。只有存在新数据时才激活事件。可随时用 BytesReceived属性检查可用的数据量。

      这就是一个最简单的CHAT程序,你可以在它的基础上加以改进,做出更实用的CHAT小软件。

  • 相关阅读:
    绝对值公式
    高中数学必修1 之 函数
    破解 k4n3程序(调♂教 绅(hen)士(tai) 程序猿)
    摘抄一些看雪坛友的经典语录
    代码子控件居中于父控件
    Floyd模板
    Dijkstra模板
    并查集模板
    字典树模板
    STL之queue
  • 原文地址:https://www.cnblogs.com/hcbin/p/1709059.html
Copyright © 2011-2022 走看看