_vb winsock控件
1.怎么在VB6.0的窗体中加入一个winsock控件
2.如何使用VB Winsock控件
3.请问:在VB6.0中使用winsock控件,作为服务器要设置本地IP地址吗?
4.VB控制远程同步播放
5.我的VB有问题,Winsock控件的属性方法和都是英文,谁能帮我翻译一下?
6.VB Winsock最简单的;聊天程序源代码
Sleep 1000
改为
DoEvents
此外
Winsock1.SendData "UD1,TREND,i" & vbCrLf
要改为
Winsock1.SendData "UD1,TREND," & i & vbCrLf
怎么在VB6.0的窗体中加入一个winsock控件
1、首先看控件区有无串口控件,表明串口控件并未被启用,选择工程→部件→Micosoft comm Control6.0选项,点击应用,即可添加串口控件。
2、绘制两个text控件用于存储串口需要收发的数据。一个button控件用于发送指令,添加串口控件。
3、编写程序: Private Sub Command1_Click() MSComm1.Output = Text2.Text ‘发送数据End Sub Private Sub Form_Load()。
4、串口数据的收发都正常。
如何使用VB Winsock控件
工程->部件
然后勾选?microsoft?Winsock?Control?6.0(SP4)
确定就OK了
然后双击?那个有点像?两个小电脑的图标?
在VB6.0的窗体中加入一个winsock控件(步骤完成)
请问:在VB6.0中使用winsock控件,作为服务器要设置本地IP地址吗?
使用 Winsock 控件步骤:
一)选择通讯协议
在使用 WinSock 控件时,首先需要考虑使用什么协议。可以使用的协议包括 TCP 和 UDP。
到底选择哪一种协议通常是由需要创建的应用程序决定的。下面的几个问题将有助于选择适宜的协议:
在收发数据的时候,应用程序是否需要得到客户端或者服务器的确认信息?如果需要,使用 TCP 协议,在收发数据之前先建立明确的连接。
数据量是否特别大(例如图象与声音文件)?在连接建立之后,TCP 协议将维护连接并确保数据的完整性。不过,这种连接需要更多的计算,因而是比较“昂贵”的。
数据发送是间歇的,还是在一个会话内?例如,如果应用程序在某个任务完成的时候需要通知某个计算机,UDP 协议是更适宜的。UDP 协议适合发送少量的数据。 ?
二)协议的设置
在设计时,可以按如下方式设置应用程序使用的协议:在“属性”窗口中单击“协议”,然后选择 sckTCPProtocol 或者 sckUDPProtocol。也可以使用程序代码来设置 Protocol 属性,如下所示:
Winsock1.Protocol = sckTCPProtocol
三)确定计算机的名称
在与远程计算机相连接的时候,需要知道它的 IP 地址或者它的“好听的名字”。IP 地址是一串数字,每三个数字为一组,中间用点隔开(形如 xxx.xxx.xxx.xxx)。通常,最易记住的是计算机的“好听的名字”。
要确定计算机的名字,请按照以下步骤执行:
在计算机的“任务栏”上,单击“启动”。
在“设置”项中,单击“控制面板”。
双击“网络”图标。
单击“标识”选项卡。
在“计算机名称”框中可以找到计算机的名称。
上面找到的计算机名称可以作为 RemoteHost 属性的值。
四)TCP 连接初步
如果应用程序要使用 TCP 协议,那么首先必须决定应用程序是服务器还是客户端。如果要创建一个服务器端,那么应用程序需要“监听”指定的端口。当客户端提出连接请求时,服务器端能够接受请求并建立连接。在连接建立之后,客户端与服务器端可以自由地互相通讯。
五)下列步骤创建一个非常简单的服务器:
要创建一个 TCP 服务器,请按照以下步骤执行:
创建新的 Standard EXE 工程。
将缺省窗体的名称改为 frmServer。
将窗体的标题改为“TCP 服务器”。
在窗体中放入一个 Winsock 控件,并将它的名字改为 tcpServer。
在窗体上添加两个 TextBox 控件。将第一个命名为 txtSendData,第二个为 txtOutput。
为窗体添加如下的代码。
Private?Sub?Form_Load()'将?LocalPort?属性设置为一个整数。
'然后调用?Listen?方法。
tcpServer.LocalPort?=?1001
tcpServer.Listen?
frmClient.Show?'显示客户端的窗体。
End?Sub
Private?Sub?tcpServer_ConnectionRequest?_
(ByVal?requestID?As?Long)
'检查控件的?State?属性是否为关闭的。
'如果不是,
'在接受新的连接之前先关闭此连接。
If?tcpServer.State?<>?sckClosed?Then?_
tcpServer.Close
'接受具有?requestID?参数的
'连接。
tcpServer.Accept?requestID
End?Sub
Private?Sub?txtSendData_Change()
'名为?txtSendData?的?TextBox?控件中
'包含了要发送的数据。当用户往文本框中
'键入数据时,使用?SendData?方法
'发送输入的字符串。
tcpServer.SendData?txtSendData.Text
End?Sub
Private?Sub?tcpServer_DataArrival?_
(ByVal?bytesTotal?As?Long)
'为进入的数据声明一个变量。
'调用?GetData?方法,并将数据赋予名为?txtOutput?
'的?TextBox?的?Text?属性。
Dim?strData?As?String
tcpServer.GetData?strData
txtOutput.Text?=?strData
End?Sub 上面的步骤创建了一个简单的服务器应用程序。为了使它能够工作,还必须为它创建一个客户端的应用程序。
六)创建 TCP 客户端,请按照以下步骤执行:
在工程中添加一个新的窗体,将其命名为 frmClient。
将窗体的标题改为“TCP Client”。
在窗体中添加一个 Winsock 控件,并将其命名为 tcpClient。
在 frmClient 中添加两个 TextBox 控件。将第一个命名为 txtSend,第二个为 txtOutput。
在窗体上放一个 CommandButton 控件,并将其命名为 cmdConnect。
将 CommandButton 控件的标题改为 Connect。
在窗体中添加如下的代码。
重点必须将 RemoteHost 属性值修改为您的计算机的名字。
Private?Sub?Form_Load()'Winsock?控件的名字为?tcpClient。
'注意:要指定远程主机,可以使用
'?IP?地址(例如:"121.111.1.1"),也可以使用
'计算机的“好听的名字”如下所示。
tcpClient.RemoteHost?=?"RemoteComputerName"
tcpClient.RemotePort?=?1001
End?Sub
Private?Sub?cmdConnect_Click()
'调用?Connect?方法,初始化连接。
tcpClient.Connect
End?Sub
Private?Sub?txtSendData_Change()
tcpClient.SendData?txtSend.Text
End?Sub
Private?Sub?tcpClient_DataArrival?_
(ByVal?bytesTotal?As?Long)
Dim?strData?As?String
tcpClient.GetData?strData
txtOutput.Text?=?strData
End?Sub
上面的代码创建了一个简单的客户/服务器模式的应用程序。我们可以将两者都运行起来:运行工程,然后单击“连接”。在两个窗体之一的 txtSendData 文本框中键入文本,可以看到同样的文字将出现在另一个窗体的 txtOutput 文本框中。
七)Winsock 控件
Winsock 控件对用户来说是不可见的,它提供了访问 TCP 和 UDP 网络服务的方便途径。Microsoft
Access、Visual Basic、Visual C++ 或 Visual FoxPro 的开发人员都可使用它。为编写客户或服务器应用程序,不必了解 TCP
的细节或调用低级的 Winsock APIs。通过设置控件的属性并调用其方法就可轻易连接到一台远程机器上去,并且还可双向交换数据。
TCP 基础
数据传输协议允许创建和维护与远程计算机的连接。连接两台计算机就可彼此进行数据传输。
如果创建客户应用程序,就必须知道服务器计算机名或者 IP 地址(RemoteHost
属性),还要知道进行“侦听”的端口(RemotePort 属性),然后调用 Connect 方法。
如果创建服务器应用程序,就应设置一个收听端口(LocalPort 属性)并调用 Listen
方法。当客户计算机需要连接时就会发生 ConnectionRequest 。为了完成连接,可调用 ConnectionRequest 内的
Accept 方法。
建立连接后,任何一方计算机都可以收发数据。为了发送数据,可调用 SendData 方法。当接收数据时会发生 DataArrival
。调用 DataArrival 内的 GetData 方法就可获取数据。
UDP 基础
用户数据文报协议 (UDP) 是一个无连接协议。跟 TCP 的操作不同,计算机并不建立连接。另外 UDP 应用程序可以是客户机,也可以是服务器。
为了传输数据,首先要设置客户计算机的 LocalPort 属性。然后,服务器计算机只需将
RemoteHost 设置为客户计算机的 Internet 地址,并将 RemotePort 属性设置为跟客户计算机的
LocalPort 属性相同的端口,并调用 SendData 方法来着手发送信息。于是,客户计算机使用 DataArrival
内的 GetData 方法来获取已发送的信息。
VB控制远程同步播放
服务端可以这样:
With Listen
.Close
.LocalPort = Text1.Text ' (根据Text1中的数值来定监听端口 ( 如为:4567 ) )
.Listen
End With
客户端可以这样:
Winsock1.Close
Winsock1.Connect Text1.Text, Text2.Text '(Text1为要连接的服务器IP地址(服务端在本地可以为 127.0.0.1), Text2为服务端监听的端口 ( 4567 ) )
我的VB有问题,Winsock控件的属性方法和都是英文,谁能帮我翻译一下?
VB我刚学我也想编个远程控制程序,这是资料>>>>>>
VB编写一个远程控制程序
一、所用控件
在程序中将使用Winsock控件。Winsock控件是一个ActiveX控件,使用TCP协议或UDP协
议连接到远程计算机上并与之交换数据。和定时器控件一样,Winsock控件在运行时是不可见的。Winsock的工作原理是:客户端向服务器端发出连接请求,服务器端则不停地监听客户端的请求,当两者的协议沟通时,客户端和服务器端之间就建立了连接,这时客户端和服务器端就可以实现双向数据传输。实际编程中,必须分别建立一个服务器端应用程序和一个客户端应用程序,两个应用程序中分别有自己的Winsock控件。首先设置Winsock控件使用的协议,这里我们使用TCP协议。现在,让我们开始用VB建立两个程序,一个是客户端程序myclient,另一个是服务器端程序myserver。
二、编写客户端程序
首先来建客户端程序myclient。在myclient程序中建立一个窗体,加载Winsock控件,称为tcpclient,表示使用的是TCP协议,再加入两个文本框(text1和text2),用来输入服务器的IP地址和端口号,然后建立一个按钮(cd1),用来建立连接,按下之后就可以对连接进行初始化了,代码如下:
private sub cd1_click()
tcpclient.romotehost=text1.text
tcpclient.romoteport=val(text2.text)'端口号,缺省为1001
tcpclient.connect '调用connect方法,与指定IP地址的计算机进行连接
cd1.enabled=false
end sub
连接之后就是如何处理所收到的数据的问题了。客户端和服务器端建立连接后,如果有任何一端接收到新的数据,就会触发该端winsock控件的dataarrival,在响应这个时,可以使用getdata方法获得发送来的数据。比如可以在tcpclient的dataarrival中编写代码如下:
private sub tcpclient_dataarrival(byval bytestotal as long)
dim x as string
tcpclient.getdata x '使用getdata获得发送来的数据
.......
End sub
后面的省略部分表示对接收到的数据进行的具体处理,读者可以根据实际情况编写。
三、编写服务器端程序
先建立一个窗体,加载Winsock控件,名称为tcpserver。另外在窗体上加入一个文本框text1用来显示客户机的IP地址和客户机发送过来的数据信息。
当客户端程序运行时,在客户端程序按下连接按钮后,客户端向服务器端程序请求连接,这时服务器端的connectionrequest被触发,所以服务器端程序要解决连接问题,可以使用connectionrequest完成此功能。代码如下:
'在窗体的load中对tcpserver控件进行初始化
private sub form_load()
tcpserver.localport=1001
tcpserver.listen '把服务器置于监听检测状态
end sub
'服务器端接收到客户端的连接请求,首先检查当前状态是否处于连接关闭状态
Private sub tcpclient_connectionrequest(Byval requestID as long)
If tcpserver.state<>sckclosed then '检查控件的state属性是否为关闭
Tcpserver.close '
Tcpserver.accept requestID '
End if
End sub
现在我们在服务器端程序tcpserver的dataarrival中添加以下代码,以便让服务器端程序可以接收客户机端的指令,并运行相应的程序。
四、测试远程控制程序
现在,你就可以将这两个程序分别运行于两台使用TCP/IP协议联网的机器了。在客户机端你按下连接按钮,再输入你要打开的文件例如:“c: mmand”,可以看到在服务器端立刻打开一个DOS窗口.
VB Winsock最简单的;聊天程序源代码
属性:
BytesReceived属性(接受数据的字节数),LocalHostName属性(本地主机名称),LocalIP属性(本地主机IP),LocalPort属性(本地主机端口),RemoteHost属性(ActiveX控件)(远程主机名称),SocketHandle属性(Socket句柄),State属性(Winsock控件)(网络状态连接、未连接),Protocol属性(Winsock控件)(协议TCP、UDP),Name属性(控件的名称),Parent属性(上级),RemotePort属性(ActiveX控件)(远程主机端口),Index属性(ActiveX控件)(上下文,一般不用),Tag属性(ActiveX控件)(标记,一般不用),Object属性(ActiveX控件)。
方法:
Accept方法(接受TCP连接请求),Bind方法,Close方法(Winsock控件)(关闭TCP连接),Listen方法(监听TCP数据),PeerData方法(获得数据),SendData方法(传输数据),GetData方法(WinSock控件),GetData方法(ActiveX控件)(获得数据)。 注意:GetData方法取回数据后,将清除缓冲区,而PeerData方法只是获取当前接收到的数据拷贝,而不清除缓冲区
:
Close(连接被关闭),ConnectionRequest(连接请求),DataArrival(数据到达),SendComplete(数据传输完毕),SendProgress(数据传输中),Error(发生错误),Connect(Winsock控件)(连接已经建立),Connect(ActiveX)。
建议你重新装一下,不过如果你能记住就无所谓了。
这个是我以前学习的一个实例。希望对你有帮助!!!
用VB实现客户——服务器(TCP/IP)编程实例
-
现在大多数语言都支持客户-服务器模式编程,其中VB给我们提供了很好的客户-服务器编程方式。下面我们用VB来实现TCP/IP网络编程。
TCP/IP协议是Internet最重要的协议。VB提供了WinSock控件,用于在TCP/IP的基础上进行网络通信。当两个应用程序使用Socket进行网络通信时,其中一个必须创建Socket服务器侦听,而另一个必须创建Socket客户去连接服务器。这样两个程序就可以进行通信了。
1.创建服务器,首先创建一个服务端口号。并开始侦听是否有客户请求连接。
建立一窗体,并向其增加一个Winsock控件(可在工程菜单中的部件项来添加此控件)
添加两文本框Text1,Text2,和一按钮Command1
Private Sub Form_Load()
SockServer.LocalPort = 2000 ′服务器端口号,最好大于1000
SockServer.Listen ′开始侦听
End Sub
Private Sub Form_Unload(Cancel As Integer)
SockServer.Close
End Sub
Private Sub SockServer_Close()
SockServer.Close
End Sub
Private Sub SockServer_ConnectionRequest(ByVal requestID As Long)
SockServer.Close
SockServer.Accept requestID ′表示客户请求连接的ID号
End Sub
′当客户向服务器发送数据到达后,产生DataArrival,在中接收数据,GetData方法接收数据。
Private Sub SockServer_Data
Arrival(ByVal bytesTotal As Long)
Dim s As String
SockServer.GetData s
Text1.Text = s
End Sub
当我需要向客户发送数据时,只需调用SendData方法。
Private Sub Command1_Click()
SockServer .SendData Text2.Text
text1.text = text2.text
text2.text = ""
End Sub
2.创建客户。要创建客户连接服务器,首先设置服务器主机名,如IP地址、域名或计算机名,然后设置服务器端口,最后连接服务器。
建立一窗体,并向其增加一个Winsock控件(可在工程菜单中的部件项来添加此控件),取名为:SockC1。添加两文本框Text1,Text2,和一按钮Command1
Private Sub Form_Load()
dim my as string
my = SockCl.RemoteHostIP
SockCl.RemoteHost = my
′表示服务器主机名
SockCl.RemotePort = 2000
′表示服务器端口名
SockCl.Connect
′连接到服务器
End Sub
Private Sub Form_Unload(Cancel As Integer)
SockCl.Close
End Sub
Private Sub SockCl_Close()
SockCl.Close
End Sub
Private Sub SockCl_DataArrival(ByVal bytesTotal As Long)
Dim s As String
SockCl.GetData s ′接收数据到文本框中
Text1.Text = s
End Sub
Private Sub Command1_Click()
SockCl.SendData Text2.Text ′向服务器发送数据
text1.text = text2.text
text2.text = ""
End Sub
3.进行通信。把这两个窗体分别编译成两个EXE文件,服务器Server.exe和客户Client.exe程序,并把它们分别安装在服务器端和客户端,这样就可以实现两者通信了。
------------------------------------整理后的代码如下-------------------------------
Private Sub Form_Load()
Dim my As String
my = SockCl.RemoteHostIP
SockCl.RemoteHost = my
SockCl.RemotePort = 2000
SockCl.Connect
End Sub
Private Sub Form_Unload(Cancel As Integer)
SockCl.Close
End Sub
Private Sub SockCl_Close()
SockCl.Close
End Sub
Private Sub SockCl_DataArrival(ByVal bytesTotal As Long)
Dim s As String
SockCl.GetData s
Text1.Text = s
End Sub
Private Sub Command1_Click()
SockCl.SendData Text2.Text
Text1.Text = Text2.Text
Text2.Text = ""
End Sub
Private Sub Form_Load()
SockServer.LocalPort = 2000
SockServer.Listen
End Sub
Private Sub Form_Unload(Cancel As Integer)
SockServer.Close
End Sub
Private Sub SockServer_Close()
SockServer.Close
End Sub
Private Sub SockServer_ConnectionRequest(ByVal requestID As Long)
SockServer.Close
SockServer.Accept requestID
End Sub
Private Sub Command1_Click()
SockServer.SendData Text2.Text
Text1.Text = Text2.Text
Text2.Text = ""
End Sub
Private Sub SockServer_DataArrival(ByVal bytesTotal As Long)
Dim s As String
SockServer.GetData s
Text1.Text = s
End Sub
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。