用Winsock制作一套聊天室和对话系统(2)
2008-02-23 06:57:30来源:互联网 阅读 ()
flag = False
a.Protocol = sckTCPProtocol
a.RemoteHost = Combo1.Text
a.RemotePort = 3000
a.Connect
End If
End Sub
Private Sub Form_DblClick()
If MsgBox("关闭本聊天室! 确认吗?", 36, "退出系统") = 6 Then
End
Else
Form1.WindowState = 1
End If
End Sub
Private Sub Form_Load()
If App.PrevInstance Then
MsgBox "本系统已经加载,请看任务拦!", 48, "提示"
End
End If
flag = False
Load Form2 ‘读入form2进入监听
End Sub
Private Sub Send_Click()
Dim S As String
On Error GoTo ffff ‘防止链路中断
Send.MousePointer = 11
If Right(Text1.Text, 1) <> Chr(10) Then
S = Text1.Text Chr(13) Chr(10)
Else
S = Text1.Text
End If
If flag Then
a.SendData S
End If
Exit Sub
ffff:
MsgBox "连接中断!", 48, "提示"
a.Close
Send.MousePointer = 0
Comm2.Caption = "连接"
Label3.Caption = "等待连接"
Combo1.Enabled = True
Comm2.MousePointer = 0
Form1.MousePointer = 0
Exit Sub
End Sub
Private Sub Timer1_Timer()
flag = False
Timer1.Enabled = False
Comm2.MousePointer = 0
Form1.MousePointer = 0
MsgBox "网络连接失败(超时) !"
Label3.Caption = "等待连接"
Combo1.Enabled = True
Combo1.SetFocus
a.Close
Comm2.Caption = "连接"
End Sub
⑶ 在Form2的各控件事件中加入如下代码:
Const maxn = 200 ‘最大同时连接本机的客户数
Dim user(maxn) As Boolean
Private Sub Command1_Click()
Form2.Hide
End Sub
Private Sub Command2_Click()
Load Form1
Form1.Show
End Sub
Private Sub Form_Load()
Dim str1 As String
Form2.Caption = "雷萌通信软件"
注释:winsock控件 a 作为服务器程序监听
a.LocalPort = 3000
a.Listen
End Sub
Private Sub a_ConnectionRequest(ByVal requestID As Long)
Dim i As Long
For i = 1 To maxn ‘当一客户请求时给启动一Winsock控件标志号
If Not user(i) Then
user(i) = True
Exit For
End If
Next i
If i > maxn Then
Exit Sub
End If
Load b(i) ‘当一客户请求时启动一Winsock控件
b(i).Accept requestID 注释:实际建立连接
If Text1.Text = "" Then 注释:发送数据
b(i).SendData Chr(0)
Else
b(i).SendData Text1.Text
End If
Form2.Show
End Sub
Private Sub s_Close(Index As Integer)
b(Index).Close 注释:关闭连接
Unload b(Index) 注释:卸载 一个WinSock 控件
user(Index) = False
End Sub
Private Sub b_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim str As String
Dim i As Long
b(Index).GetData str
Text1.Text = Text1.Text str
For i = 1 To maxn
If user(i) Then
b(i).SendData str
End If
Next i
End Sub
三·运行
本程序在VB6.0中编译通过,运行后最小化到任务栏上,也可以用API的Shell_Notifyicon 函数做入右下角的指示器栏中常驻内存。你可以在网络中用一个固定的机器地址作为聊天讨论室,其他用户都选该机地址连接进入该室聊天或讨论。各用户也可选各自熟悉的地址进行连接对话,双击form1空白处从内存中撤出系统。根据同样的原理可以制作电子邮件系统。
上一篇: 在程序中打开 Internet 拨号连接窗口
下一篇: 在WindowsNT网络中广播消息
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:自动更新工作站的应用程序
下一篇:制作VB另类按钮
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
