VB编写的局域网聊天工具源代码
我有源代码
如果需要
请留下邮箱
代码已发送
请查收
Dim score As Integer
Dim speed As Integer
Dim typetime As Integer
Private Sub init()
Randomize
lblletter1.Caption = Chr(Int(Rnd * 42) + 48)
lblletter1.Left = Int(Rnd * 2800) + 1
lblletter1.Top = 0
End Sub
Private Sub init1()
Randomize
lblletter2.Caption = Chr(Int(Rnd * 25) + 97)
lblletter2.Left = Int(Rnd * 2800) + 1
lblletter2.Top = 0
End Sub
Private Sub Command1_Click()
score = Int(lblscore.Text)
init
init1
Timer1 = True
Timer2 = True
HScroll1.Enabled = False
Command1.Enabled = False
Command2.Enabled = False
HScroll1.Enabled = False
If lbltime.Text <= 0 Then
Timer1 = False
Timer2 = False
lblletter1.Caption = ""
lblletter2.Caption = ""
End If
End Sub
Private Sub Command2_Click()
typetime = InputBox("请输入打字时间。", "时间设置")
If typetime <= 0 Then
lbltime.Text = 60
End If
lbltime.Text = typetime
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
If Chr(KeyAscii) = lblletter1.Caption Then
score = score + 1
lblscore.Text = score
init
End If
If Chr(KeyAscii) = lblletter2.Caption Then
score = score + 1
lblscore.Text = score
init1
End If
End Sub
Private Sub Form_Load()
Timer1.Enabled = False
Timer2.Enabled = False
lblletter1.AutoSize = True
lblletter2.AutoSize = True
lblletter1.Caption = ""
lblletter2.Caption = ""
lblscore.Text = 0
lblspeed.Caption = 100
lbltime.Text = 60
HScroll1.Max = 200
HScroll1.Min = 20
HScroll1.SmallChange = 5
HScroll1.LargeChange = 20
HScroll1.Value = 100
End Sub
Private Sub HScroll1_Change()
lblspeed.Caption = HScroll1.Value
End Sub
Private Sub Timer1_Timer()
lblletter1.Top = lblletter1.Top + lblspeed.Caption
If lblletter1.Top >= 4335 Then
Call init
End If
lblletter2.Top = lblletter2.Top + lblspeed.Caption
If lblletter2.Top >= 4335 Then
Call init1
End If
End Sub
Private Sub Timer2_Timer()
If lbltime.Text > 0 Then
lbltime.Text = lbltime.Text - 1
Else: Select Case score / (typetime / 60)
Case Is <= 40
MsgBox ("不要放弃再试一次!")
Case 40 To 80
MsgBox ("太棒了,继续努力!")
Case 80 To 120
MsgBox ("坚持下去,你将成为一个打字高手!")
Case Is > 120
MsgBox ("祝贺你!你已经是一个打字高手!")
End Select
Timer1 = False
Timer2 = False
HScroll1.Enabled = True
Command1.Enabled = True
Command2.Enabled = True
HScroll1.Enabled = True
init
init1
End If
End Sub
---- 所谓"聊天"是指两个程序能够发送数据给对方。这个程序涉及到数据通讯的知识,仿佛很复杂,不过,由于VB给我们提供了一个Winsock控件,问题就变得很简单了。
---- 先编写"聊天(主机)"程序。在窗体里添加Winsock控件,并设置其Protocol属性为1-SckUDPProtocol,其他属性为缺省值。接着添加两个标签和两个文本框,设置两个标签的标题属性分别为"接收窗"和"发送窗";两个文本框的标题属性为空。最后编写代码:
---- 1."聊天(主机)"
Private Sub Form-Load()
′设置网络地址
Winsock1.LocalPort=1024
Winsock1.RemoteHost="202.96.6.1"
Winsock1.RemotePort=1999
End Sub
Private Sub Text1-Change()
′发送用户输入的内容
Winsock1.SendData Text1.Text
End Sub
Private Sub Winsock1-DataArrival
(Byval bytesTotal As Long)
Dim rec As String
′接收对方数据并在文本框内显示
Winsock1.GetData rec, vb String
Text2.Text=rec
End Sub
---- 2."聊天(副机)"
Private Sub Form_Load()
′设置网络地址
Winsock1.LocalPort=1999
Winsock1.RemoteHost="202.96.6.1"
Winsock1.RemotePort=1024
---- 其他部分程序与(主机)相同。最后将两个程序存盘,并编译成执行(.Exe)文件。现在就可以使用这个程序进行对话了。
---- 七.文本框中文本的某一特定字符或字符串同时高亮显示的方法
---- 由于普通TextBox控件不支持不连续字符串的同时高亮显示,所以我们选择RichTextBox控件。单击工程(Project)选单项,在弹出的下拉选单中单击组件(Components)选单项,从弹出的对话框中选择Microsoft Rich Textbox Control 5.0复选框,确定加载RichTextBox控件。
---- 新建(New)一个工程,在窗体(Form)上添加一个RichTextBox控件和两个Command(按钮)控件,都采用系统默认的Name属性值;设置RichTextBox的Text属性值为空,Command1和Command2的Caption属性值分别设为"输入文本"和"选择字符串"。最后,添加如下VB代码:
Private Sub Command1-Click()
Dim str As String
Dim Text As String
str=〃输入文本〃
Text=InputBox(str)
RichTextBox1.Text=Text
End Sub
Private Sub Command2-Click()
Dim str As String
Dim Text As String
Dim Position As Integer
Dim Lenth As Integer
str=〃输入要高亮显示的字符串〃
Text=InputBox(str)
If Text 〈〉 〃〃 Then
Position=InStr(RichTextBox1.Text, Text)-1
Lenth=Len(Text)
RichTextBox1.SelStart=Position
RichTextBox1.SelLength=Lenth
RichTextBox1.SelColor=RGB(255,0,0)
Do While InStr(Position+Lenth+
1, RichTextBox1.Text, Text) 〈〉 0
Position=InStr(Position+Lenth+
1, RichTextBox1.Text, Text)-1
RichTextBox1.SelStart=Position
RichTextBox1.SelLength=Lenth
RichTextBox1.SelColor=RGB(255,0,0)
Loop
End If
End Sub
---- 按F5执行程序,单击"输入文本"按钮,在弹出的对话框中输入一些文本,确定后,刚刚输入的文本将显示在RichTextBox中;再单击"选择字符串"按钮,在弹出的对话框中输入你希望高亮显示的字符串,确定后,RichTextBox中相应的字符串将以红色高亮显示。
---- 八.编程实现Windows 95/98操作系统热启动的方法
---- 要利用程序实现系统的重新启动,可以在你的程序中调用API函数来实现。建一个子函数:(以VB为例)
Declare Function SystemParametersInfo Lib 〃
user32〃 Alias -
〃SystemParametersInfo〃 (ByVal uAction As Long,
ByVal uParam As Long,
ByVal lpvParam As Any, ByVal
fuWinIni As Long) As Long
Sub DisableCtrlAltDelete(bDisabled As Boolean)
Dim X As Long
X=SystemParametersInfo(97, bDisabled, CStr(1), 0)
End Sub
Call DisableCtrlAltDelete(true) ′禁止热启
Call DisableCtrlAltDelete(false) ′允许热启
---- 九.在Windows 95/ 98启动后自动启动程序的方法
---- 我们都知道在Windows 95/98的"开始"→"程序"选单下有一"启动"选单项,当每次启动Windows 95或Windows 98时,系统都会自动启动放在"启动"选单栏里的可执行程序。
---- 但目前有好多软件,像解霸五、ICQ,以及大部分实时侦测病毒的软件等等,安装后,并没有放在"启动"选单里,也能在启动操作系统时自动启动。怎么实现的呢?
---- 其实只要知道Windows注册表的一些知识,这个问题就不能称之为问题了。用鼠标单击"开始",打开开始选单,再单击"运行",出现一对话框,然后输入"regedit",确定后,会打开系统注册表编辑器,找到HKEY-LOCAL-MACHINE? SOFTWARE?Microsoft?Windows?CurrentVersion?Run,加入你的程序的入口,就可以了。如果不知道怎么加,就参考一下已经存在的键值。
---- 十. 如何把数据文件输出到Text控件中?如果数据量比较大,窗体满屏也不够大,怎么解决?
---- 有一个比较简单的方法,就是把数据放到一个文本框(Text)里,并在其中加上水平和垂直滚动条。具体实现步骤为:先在窗体(Form)里加入一个文本框,采用默认名Text1;然后,设置文本框Text1的属性:Text属性设置为空,MultiLine属性设置为True,ScrollBars属性设置为3-Both;接着添加如下VB代码:
Private Sub Form-Load()
Dim Handle As Integer
Dim FileName As String
On Error GoTo ErrExit
begin:
′输入要显示的数据文件的名称
FileName=InputBox$(〃Input Filename〃,
〃Open File〃)
On Error GoTo FileErr
Handle=FreeFile
Open FileName For Input As #Handle
′把数据文件中的数据输出到文本框中
Text1.Text=Input$(LOF(Handle), Handle)
Close #Handle
Exit Sub
FileErr:
Dim ErrNum As Integer
If Err.Number=53 Then
ErrNum=MsgBox(〃File not exist〃,
vbOKCancel, 〃Error Information〃)
If ErrNum=1 Then
GoTo begin
Else
Exit Sub
End If
End If
MsgBox Err.Description, , 〃file open failed〃
ErrExit:
Exit Sub
End Sub
′使文本框充满整个窗体
Private Sub Form-Resize()
Text1.Left=0
Text1.Top=0
Text1.Width=Form1.Width-100
Text1.Height=Form1.Height-400
End Sub
---- 通过这样的处理,不仅能解决问题,而且用户还可以在文本框中对数据进行编辑。
---- 十一.关联文件列表框、目录列表框和驱动器列表框的方法
---- 想做一个对话窗体,包含驱动器列表框、目录列表框和文件列表框,并能实现三者的同步操作,怎么做?这都是我们在实际应用中经常会遇到的问题,在VB中解决这个问题非常简单,可以通过Path属性的改变引发Change事件来实现。例如:
Sub Dir1-Change()
File1.Path=Dir1.Path
End Sub
---- 该事件过程使窗体上的目录列表框Dir1和文件列表框File1产生同步。因为目录列表框Path属性的改变将产生Change事件,所以在Dir1-Change事件过程中,把Dir1.Path赋给File1.Path,就可以产生同步效果。类似地,增加下面的事件过程,就可以使三种列表框同步操作:
Sub Drive1-Change()
Dir1.Path=Drive1.Drive
End Sub
---- 该过程使驱动器列表框和目录列表框同步,前面的过程使目录列表框和文件列表框同步,从而使三种列表框同步,问题即可解决。
新建一个“标准.exe”工程,然后单击“工程”-->“部件”,在弹出的对话框里的“控件”选项卡里找到“Microsoft WinSock Control 6.0”,将WinSock控件天家到控件工具箱里。在窗体上添加两个WinSock,一个命名为sockCient,一个命名为sockSer,再右键WinSock,选择“属性”,名为sockCient的WinSock协议选择0-sckTCPProtocol,远程端口设置为1001,本地端口设置为1002;名为sockSer的WinSock协议选择0-sckTCPProtocol,远程端口设置为1002,本地端口设置为1001。然后添加2个文本框,名称分别是txtIP和txtSend。前面一个是用来输入IP地址的,后面一个是输入要发送的消息的。设置txtSend的MultiLine属性为True,ScrollBars属性为2。
添加两个按钮,一个叫cmbConnect,一个叫cmdSend。Caption分别设置成连接和发送消息。
要输入的代码是(举个例子,方法不止这一种):
private sub cmdconnect_click()
sockclient.remotehost=txtIP.text
sockclient.connect
cmdsend.enabled=true
cmdconnect.enabled=false
end sub
private sub form_unload(cancel as integer)
if sockclient.state<>sckclosed then sockclient.close
if sockser.state<>sckclosed then sockser.close
end
end sub
private sub cmdsend_click()
dim strsend as string
strsend=sockclient.localhostname+":"+txtsend.text
sockclient.senddata strsend
txtsend""
end sub
private sub form_load()
cmdsend.enabled=false
sockser.listen
end sub
private sub sockclient_connect()
n=msgbox("连接成功!",vbinformation,"提示")
cmdconnect.enabled=false
end sub
private sub sockclient_error(byval number as integer,description as string,byval scode as long,byval source as string,byval helpfile as string,by helpcontext as long,canceldisplay as boolean)
n=msgbox("连接出错!关闭连接!",vbinformation,"警告")
sockclient.close
cmdconnect.enabled=true
end sub
private sub sockser_connectionrequest(byval requestID as long)
if sockser.state<>sckclosed then sockser.close
sockser.accept requestID
end sub
private sub sockser_dataarrival(byval bytes total as long)
dim strget as string
sockser.getdata strget
if strget="^close^" then
sockser.close
sockser.listen
end if
n=msgbox("受到来自" & sockser.localIP & "的消息" & strget,,"提示")
end sub
..完全是自己打的,这台电脑没VB所以没办法试一下,你试下,看行不行。
楼上有点自主意识好伐?全部不知道哪复制来的。就这还来赚分?
linux下用c语言编写局域网聊天工具
\/*服务器*\/ include <stdio.h> include <stdlib.h> include <errno.h> include <string.h> include <sys\/types.h> include <netinet\/in.h> include <sys\/socket.h> include <sys\/wait.h> define SERVPORT 5555 define BACKLOG 10 define MAX(a,b) ((a)>(b)?(a):(b))void str_...
关于B类局域网子网的划分,网络技术的题
你可以按照每个子网下最多260台机算``260台主机` 256<260<512 主机号至少应该有 2的9次方 9位 则 子网掩码是11111111.11111111.11111110.00000000 换成16进制 255.255.254.0 IP的分配``这个可以自己决定的``子网掩码填上面的就好了
802.11a 802.11b 802.11g三种无线电局域网的标准
802.11a工作在5GHz的U-NII频带,物理层速率可达54Mb\/s,传输层可达25Mbps。它支持25Mbps的无线ATM接口和10Mbps的以太网无线帧结构接口,以及TDD\/TDMA的空中接口;支持语音、数据、图像业务;一个扇区可接入多个用户,每个用户可带多个用户终端。802.11b是IEEE 802.11无线局域网的标准,其带宽最高可达11...
请问用命令提示符的哪个命令可以向局域网内的机器发消息?
winchat---XP自带局域网聊天 progman---程序管理器 winmsd---系统信息 perfmon.msc---计算机性能监测程序 winver---检查Windows版本 sfc \/scannow---扫描错误并复原 taskmgr---任务管理器(2000\/xp\/2003) wmimgmt.msc---打开windows管理体系结构(WMI) wupdmgr---windows更新程序 w脚本---windows脚本宿主设置 write...
现在有两台电脑A和B.需要建立成一个简单的局域网(不用上网的).照网上...
两台电脑用个反绞线在网卡上一插就OK了...两个计算机都应该在同一个工作组,网卡属性里的TCP\/IP 那个属性里把A的IP设置为192.168.0.1把B的那个属性设为192.168.0.2,就可以了
在局域网中, A、 B、 C、 D四台计算机如何直接交换信息?
检查网络设置:确保每台计算机的网络设置正确,包括子网掩码、网关等。这些设置应该与局域网的要求相匹配。直接通信:一旦IP地址和其他网络设置都配置正确,A、B、C、D四台计算机应该能够直接交换信息。这通常是通过使用TCP\/IP协议进行数据包的传输来实现的。使用云飞云共享云桌面管理软件,可以把企业信息化...
求救组建两个局域网A、B,A能访问外网,B不能访问外网,但要求AB能够互访...
有两个简单的方法你可以试一下。1. 网络访问一般是需要DNS解析的,如果你不想B局域网访问外网可以把B路由器的DNS设空,或者把B网的机器DNS设空。2. 如果B网是由一个路由器连接的,那就在路由器的防火墙里建立一条IP地址过滤规则。关闭任何IP的任何端口对外网的访问!
同一个局域网中,两主机A和B如何通信?
同一个局域网中,两主机A和B如何通信?要看你连接A和B两主机是用什么设备,不同设备,组织数据的传输过程有差异,还有你的局域网采用的技术决定,比如以太网和令牌网就不一样 以太网下(主流)比如用HUB(集线器)和SWITCH(交换机)是不一样的.1:HUB中采用CSMA\/CD技术 任何一太主机发数据之前要冲突检测,...
B类局域网划分子网
B类的子网掩码应该是255.255.0.0。这个划分方法不是唯一的。我只给你提供一种好了。300台机器的子网IP为:172.16.2.0开始,子网掩码为:255.255.254.0开始,全零全1的都不要用。70台的子网IP为:172.16.0.128开始,子网掩码为255.255.255.128开始,全零全1不要用。60台的IP为:172....
3个局域网A、B、C,A与B相连,B与C相连,A与B可以Ping通,B与C可以Ping通...
B的S2到C的s1 下一跳到c的F0口(就是c的下联局域网口)B的s1到A的s1 下一跳到a的F0口(就是a的下联局域网口)C的s1到B的s2 下一跳到B的F0口(就是B的下联局域网口)不要把C的下一跳指到B的s1口。交换的实现 SW1 SW2 SW3 在sw2上做VLAN VLAN1 VLAN2 VLAN1 含B的局域网和...
玉爬克咳: 用VB做聊天程序的方法 ---- 所谓"聊天"是指两个程序能够发送数据给对方.这个程序涉及到数据通讯的知识,仿佛很复杂,不过,由于VB给我们提供了一个Winsock控件,问题就变得很简单了. ---- 先编写"聊天(主机)"程序.在窗体里添...
桂东县17338638980: 如何用VB制作简单的局域网聊天工具??
玉爬克咳: VB中的winsock可以提供支持,具体的代码部分你可以在网上搜索一下.
桂东县17338638980: VB编一个聊天工具 - ?
玉爬克咳: 现在目前的是两个IP交流 或者局域网的 不然就个个都是 高手了 代码: Dim NewClient As Boolean Private Sub cmdConnect_Click() cmdQuit.Enabled = True On Error GoTo MyErr tcpClient.RemoteHost = txtHost.Text tcpClient.RemotePort = "8800" tcpClient.Connect txtHost.Locked = True txtPort.Locked = True NewClient = True Exit Sub MyErr: MsgBox "出现错误: "
桂东县17338638980: vb制作简单聊天室?
玉爬克咳: 貌似netmeeting 就可以..开始-运行-conf 一个人建主 其他人加入就好了.还可以演讲.我们学校局域网都这样.
桂东县17338638980: 如何用VB制作简单的局域网聊天工具? - ?
玉爬克咳: 用winsock控件,TCP模式:一个程序作为服务器一直处于监听状态,一个程序作为客户端连接服务器,连接成功后,用接收和发送两个方法收发数据即可,1对多,设置好IP和端口即可.UDP模式:直接利用IP和端口连接,1对1.
桂东县17338638980: 急 要一个聊天工具?
玉爬克咳: 名称:迷你聊天软件 大小:36864 字节=36.0 KB 编写工具:vb 版本:1.0 源代码: Private Sub mr_Click() If mr.Value = 1 Then Text3.Enabled = False: Text4.Enabled = False: Text3.Text = 5000: Text4.Text = 5000 Else Text3.Enabled = True: Text4....
桂东县17338638980: 急需一个用VB实现的类似QQ的网络聊天工具代码?
玉爬克咳:winsock把使用winsock连接、发送数据.用WEBBROWSER浏览网页.很简单的,要代码联络QQ:253966656E-mail:253966656@qq.com
桂东县17338638980: VB 局域网做聊天工具?
玉爬克咳: private sub form_load() '设置本机连接端口的localport属性的内容 '请注意!必须是整体值 tcpserver.LocalPort=2000 '将本机连接端口设置为监听模式 tcpserver.Listen Me.Caption=”frmsever” Label1.Caption=”传送的文字“ Label2....
桂东县17338638980: 需要用vb编程,编一个简单的聊天软件 - ?
玉爬克咳: socket or tcp server library using: system.net
桂东县17338638980: VB如何写一个一对多聊的局域网聊天系统?(一对一聊已经会了!) - ?
玉爬克咳: 跟1对1没有多大的区别,只不过需要对发送的消息自己定义下格式,比如说一条消息,前面多少字节表示命令,后面紧跟内容,最后消息有服务端,处理根据前面的命令对消息进行路由