VB 替换文本文档内容以及查找
我用VB做了一个服务端和客服端,需要实现如下功能,望好心网友解答。1、客服端访问服务端时,如果连接成功,服务端TEXT1.TEXT显示客服端的IP地址。2、客服端下线时,...
我用VB 做了一个服务端和客服端,需要实现如下功能,望好心网友解答。
1、客服端访问服务端时,如果连接成功,服务端TEXT1.TEXT显示客服端的IP地址。
2、客服端下线时,发送指定字符串到服务端,服务端收到字符串后在TEXT1.TEXT内将客服端IP地址去除。
3、“1和2”实现的功能是:实时显示与服务端创建连接的主机IP地址。
4、我用的winsock控件,建立的UDP协议。
5、在根目录下有一个yonghu.txt文档,主程序里面有一个Timer_Time控件实时读取yonghu.txt文档的内容。
6、整个流程下来:首先,客服端访问服务端,yonghu.txt里面写入客服端IP地址;然后,下一个客服端访问服务端,不覆盖第一个客服端的IP,继续添加进去;客服端1下线后,服务端将已下线的客服端1的IP删除。
望好心网友解答,大恩不言谢。 展开
1、客服端访问服务端时,如果连接成功,服务端TEXT1.TEXT显示客服端的IP地址。
2、客服端下线时,发送指定字符串到服务端,服务端收到字符串后在TEXT1.TEXT内将客服端IP地址去除。
3、“1和2”实现的功能是:实时显示与服务端创建连接的主机IP地址。
4、我用的winsock控件,建立的UDP协议。
5、在根目录下有一个yonghu.txt文档,主程序里面有一个Timer_Time控件实时读取yonghu.txt文档的内容。
6、整个流程下来:首先,客服端访问服务端,yonghu.txt里面写入客服端IP地址;然后,下一个客服端访问服务端,不覆盖第一个客服端的IP,继续添加进去;客服端1下线后,服务端将已下线的客服端1的IP删除。
望好心网友解答,大恩不言谢。 展开
展开全部
其实你的 yonghu.txt 就是多余的,你可以直接用一个 Collection 保存你的用户IP
如果真要保存成文件 只要每次变动保存一下就可以了!
如果你的txt用来保存用户登陆历史 是不是更有用户 .因为你保存的东西都是临时的[上述]
'用法:
private users as new Collection
' 添加
users.add "xx.xx.xx.xx"
' 删除
users.remove "xx.xx.xx.xx"
'查找:
function FindUser(ip as string) as boolean
dim i
for Each i in users
if i=ip then Finduser=true:exit for
next
end function
'保存数据
sub SaveFile (coll as collection,path as string)
open path for output as #1
dim i
for each i in coll
print #1,i
next
close #1
end sub
追问
问题是我要显示在FORM1的TEXT1.TEXT上面啊
追答
function Tostring(coll as collection) as string
dim s as string
dim i
for each i in coll
s=s & vbcrlf
next
toString=s
end function
上面的代码你就可以
text1.text=tostring(users)
展开全部
1) 用timer 定时判断winsock的连接状态,
Dim TempString as string
TempString = Empty
For i = 0 To Winsock1.UBound
Winsock1(i).State = 7 then TempString = TempString & winsock1(i).RemoteHostIP & vbCrlf
next i
Text1.text = TempSring
2) 客户端下线服务端即可知道连接状态,无需发送字符串,多余的操作。
3)1 就能实现了。
4) UDP是一种无连接的协议。类似于广播,服务端是不考虑网络连接状态或者接收与否,只管发送数据。
5 + 6) 读取文本文件先引用microsoft scripting runtime.
dim MyStream as TextStream
dim TempLine as String
dim LogFile as String
LogFile = app.path & "\yonghu.txt"
set MyStream = fso.OpenTextFile(LogFile, ForAppending)
'读语句
TempLine = mySteam.readline
'写语句
MyStream.writeline =Templine
'具体实现可以自己看着用了。
看了你的问题,你就是要即时的知道在线的用户端,没必要用txt这的东西吧,我写过聊天室,要的话可以发Email给你参考
Dim TempString as string
TempString = Empty
For i = 0 To Winsock1.UBound
Winsock1(i).State = 7 then TempString = TempString & winsock1(i).RemoteHostIP & vbCrlf
next i
Text1.text = TempSring
2) 客户端下线服务端即可知道连接状态,无需发送字符串,多余的操作。
3)1 就能实现了。
4) UDP是一种无连接的协议。类似于广播,服务端是不考虑网络连接状态或者接收与否,只管发送数据。
5 + 6) 读取文本文件先引用microsoft scripting runtime.
dim MyStream as TextStream
dim TempLine as String
dim LogFile as String
LogFile = app.path & "\yonghu.txt"
set MyStream = fso.OpenTextFile(LogFile, ForAppending)
'读语句
TempLine = mySteam.readline
'写语句
MyStream.writeline =Templine
'具体实现可以自己看着用了。
看了你的问题,你就是要即时的知道在线的用户端,没必要用txt这的东西吧,我写过聊天室,要的话可以发Email给你参考
追问
5+6问题,怎么直接向根目录\yonghu.txt里面添加内容,前提是不覆盖之前的内容,并且是在yonghu.txt新的一行添加。
追答
MyStream.WriteLine 就是新添一行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询