+ -
当前位置:首页 → 问答吧 → 关于聊天软件的代码

关于聊天软件的代码

时间:2011-08-10

来源:互联网

请问哪位高手有研究过多人聊天的代码,我有些很不懂,下面这些代码从网上找来看看的
Private client As TcpClient
  Private readBuffer(READ_BUFFER_SIZE) As Byte 
  Private strName As String

  ' 类对象属性Name
  Public Property Name() As String
  Get
  Return strName
  End Get
  Set(ByVal Value As String)
  strName = Value
  End Set
  End Property


  Public Event LineReceived(ByVal sender As UserConnection, ByVal Data As String)

  '发送信息
  Public Sub SendData(ByVal Data As String)
  ' 锁定当前时间没有其它的在读取信息流
  SyncLock client.GetStream
  Dim writer As New IO.StreamWriter(client.GetStream)
  writer.Write(Data & Chr(13) & Chr(10))

  ' Flush信息.
  writer.Flush()
  End SyncLock
  End Sub
虽然有些解析,但不能完全读弄意思。望解答啊,比如这里定义了 Public Event LineReceived后还定义Public Sub SendData,这样又不会出错,怎么回事?

作者: deng_zhihao692817   发布时间: 2011-08-10

MSDN
Event 语句



定义用户自定义的事件。

语法

[Public] Event procedurename [(arglist)]

Event 语句包含下面部分:

部分 描述
Public 可选的。指定该 Event 在整个工程中都是可见的。缺省情况下 Events 类型是 Public。应注意,事件只能在所声明的模块中产生。
procedurename 必需的。事件的名称;遵循标准的变量命名约定。


arglist 参数的语法及语法的各个部分如下:

[ByVal | ByRef] varname[( )] [As type]

部分 描述
ByVal 可选的。表示该参数是按值传递的。
ByRef 可选的。表示该参数是按地址传递的。ByRef 是 Visual Basic 的缺省设置。
varname 必需的。代表要传递给过程的参数变量的名称;遵循标准的变量命名约定。
type 可选的。指传递给过程的参数的数据类型;可以是 Byte、布尔、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(只支持变长)、Object、Variant、用户定义类型或对象类型。


说明

事件被声明之后,就可以使用 RaiseEvent 语句来产生该事件。如果在标准模块中出现 Event 声明,就会产生语法错误。不能声明带返回值的事件。在下面的代码段中,给出了声明事件和产生事件的典型事件:

'在类模块的模块级中声明一个事件

Event LogonCompleted (UserName as String)

Sub
RaiseEvent LogonCompleted("AntoineJan")
End Sub

注意 可以象声明过程的参数一样来声明事件的参数,但有以下不同:事件不能有带命名参数、Optional 参数、或者 ParamArray 参数。事件没有返回值。

作者: chinaboyzyq   发布时间: 2011-08-12

热门下载

更多