正文

 经过在vb精英里的潜水,终于把winsock高定了。2005-10-03 09:30:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/iamben250/5611.html

分享到:

先介绍一下winsock吧!
1.TCP (Transfer Control Protocol:传输控制协议)基础
  数据控制传输协议允许创建和维护与远程计算机的连接。连接两台计算机就可彼此进行数据传输。如果创建客户应用程序,就必须知道服务器计算机名或者 IP 地址(RemoteHost 属性),还要知道进行“侦听”的端口(RemotePort 属性),然后调用 Connect 方法。
  如果创建服务器应用程序,就应设置一个收听端口(LocalPort 属性)并调用 Listen 方法。当客户计算机需要连接时就会发生 ConnectionRequest 事件。为了完成连接,可调用 ConnectionRequest 事件内的 Accept 方法。
  建立连接后,任何一方计算机都可以收发数据。为了发送数据,可调用 SendData 方法。当接收数据时会发生 DataArrival 事件。调用 DataArrival 事件内的 GetData 方法就可获取数据。
属性
方法
LocalHostName | 本地机器名
LocalIP | 本地机器IP地址
LocalPort | 本地机器通信程序的端口(0<端口<65536)
RemoteHost | 远程机器名
RemotePort | 远程机器的通信程序端口
state | 连接的当前状态
Protocal | 使用TCP或UDP协议
Listen
Listen方法用于服务器程序,等待客户访问。
格式:Winsock对象.listen
Connect
Connect方法用于向远程主机发出连接请求
格式:Winsock对象.connect [远程主机IP,远程端口]
Accept
Accept方法用于接受一个连接请求
格式:Winsock对象.accept Request ID
Senddata
此方法用于发送数据
格式:Winsock对象.senddata 数据
Getdata
用来取得接收到的数据
格式:Winsock对象.getdata 变量 [,数据类型 [,最大长度]]
Close
关闭当前连接
格式:Winsock对象.close
事件
Close | 远程机器关闭连接时触发
Connect | 连接建立好,可以进行通信时触发(客户端)
ConnectRequest | 有请求连接到达时产生(服务器端)
DataArrival | 有数据到达时触发
Error | 发生错误时发生
SendProgress | 数据传送进度
Winsock的state属性
常数 值 描述
sckClosed 0 缺省值,关闭。
SckOpen 1 打开。
SckListening 2 侦听
sckConnectionPending 3
连接挂起
sckResolvingHost 4
识别主机。
sckHostResolved 5
已识别主机
sckConnecting 6
正在连接。
sckConnected 7 已连接。
sckClosing 8 同级人员正在关闭连接。
sckError 9    错误。
好接下来,把我的设计给大家送上来:
'========================================================
'判断程序是否是第一第运行,如果是则要求他填写主机的名称或者是ip,如果不是则读取主机的ip给程序
Dim Number As String
Dim ServerName As String
Open (App.Path & "\number.ini") For Input As #1
Line Input #1, Number
Close #1
If Number = 0 Then
ServerName = InputBox$("这是第一次运行本程序.请输入主机的名称", "输入主机的名称,请再半角下输入,且为英文输入法", "input host name", , 100)

Open (App.Path & "\server.ini") For Output As #2
Write #2, ServerName
Close #2
Open (App.Path & "\number.ini") For Output As #3
Write #3, 1
Close #3
Else
Open (App.Path & "\server.txt") For Input As #4
Line Input #4, ServerIp
Close #4
End If
'========================================================
以上部分是为了存储用户要连接的服务器的ip
'========================================================
'对serverip的处理
Dim I As Integer '用I来存储SERVERIP的长度
Dim Server As String
I = Len(ServerIp)
'对serverip进行处理,删除两边的双引号
Server = Mid(ServerIp, 2, I - 2)
ServerIp = Server
'========================================================
这部分我都不知道有没有必要
'========================================================

'配置stuwintcp,测试
StuWinTcp.Protocol = sckTCPProtocol
StuWinTcp.LocalPort = 9000
StuWinTcp.RemotePort = 9001
StuWinTcp.RemoteHost = ServerIp '"127.0.0.1"
'========================================================
下来就是我们的主题了,对远程机进行连接。。。

阅读(4344) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册