用VB创建自己的通信程序

用VB创建自己的通信程序,第1张

Winsock控件建立在TCP、UDP的协议基础上,以完成计算机网络间的通信。下面将详细的介绍具体的程序创建过程,以便使大家更好的理解程序的源代码。

服务器端程序的运行过程是:

(1)服务器端要设置好侦听端口即LocalPort属性,作为侦听端口的值必须是一个整数(一定要是其它TCP/IP应用程序没有用过的值,并且不能与系统缺省端口冲突)。

(2)用Listen方法进入侦听状态,等待客户机的连接请求。

(3)当客户机发出连接请求时,使服务器产生一个ConnectionRequest事件,且该事件得到一个参数equestID。

(4)服务器程序用Accept方法接受客户机requestID请求。这样,服务器程序便可以用SendData方法来发送数据了。但是,Accept方法必须用上一个步得到的requestID作为其参数。

(5)当服务器程序接收到数据时,高仔便会产生一个DataArrial事件,参数BytesTotal包含接收到的数据字节数。在该事件中,可以用GetData方法接收数据。

(6)如果接收到Close事件,则用Close方法关闭TCP/IP连接。橡念困

客户机的程序的运行过程是:

(1)在客户程序中设置Remmotehost属性,以便指定运行服务器程序的主机名,该字符串可以在服务器“ 控制面板 网络 标识 计算机”中查到。

(2)设置RemotePort属性,以便指定服务器程序的侦听端口(其设置方法与服务器端类似)。

(3)使用Connect方法,向服务器提出连接请求。

(4)梁念当服务器程序接受到客户机程序的请求后,客户机程序产生Connect事件,就可以用SendData方法发送数据了。

(5)当客户机程序接收到数据时,便会产生DataArrival事件,参数BytesTotal包含接收到的数据字节数。类似的在该事件中也可以用GetData方法接收数据。

(6)如果客户机程序接收到Close,则用Close方法关闭连接。

使用说明:

本程序实现了两台计算机之间的自由通信。先将编译好的程序分别放入两台已联网的计算机的 开始 启动 中,这样每次启动时,程序将会自动运行,程序启动时将以最小化的形式出现在任务栏中,当用户使用时可以通过点击任务栏上的该程序图标来激活该程序,一方将程序激活后,在“请输入所要连接的主机名:“右侧的我框中输入需要连接的计算机名,并敲“连接”键便可连接成功。此时在“接收窗口:”下的我框中将会出现“连接成功”的提示。然后就可以在“发送窗口:”下的我框中输入要说的话了,输入完毕后敲“发送”键后便可使另一方收到你的话了,如果另一方的程序尚未正常化,那么另一方程序将发出提示音并使任务栏中程序的图标闪烁,直到另一方将程序激活为正常化并与你对话为止。如果暂时停止对话可以点击该程序的极小化按钮将程序最小化,一旦需要再次通话可直接激活该程序发送过去,如果另一方的程序尚未正常化,那么程序仍将发出提示音并使开使栏中程序的小图标闪烁,直到另一方将程序正常化并与你对话为止。所以,无论什么时候想与对方通话只要对方开了机便可以实现。当需要断开连接时请按“关闭”键,该程序能自动发送结束消息,使对方能够知道你已断开连接,以结束程序运行。

1、将程序安装在“服务器”,使程序文件夹共享;

2、制作客户端安装程序(实际就是在客户端安装VB运行时塌卖需要的一些dll,ocx文件),制作方法是再次发布程序,发布是添加的文件仅仅是dll,ocx文件,不包括exe,mdb等文件),不需要安装程序文件夹、程序目录、启动程序等等;

3、在客户端安装客户端安纯衫枝装程序;

4、在“服务器”进行下列设置:【开始】-【设置】-【控制面板】-【管理工具】-【计算机管理】点击“本地用户和组”,在点击“做敏用户”,在用户界面右击Guest,在属性对话框去掉“用户不能更改密码”、“帐户已停用”的勾选,然后确定;

5、在客户端双击桌面的网上邻居,a、如果是Windows XP系统,点击查看工作组计算机,如果网络连接没有问题,“服务器”就会出现在列表中,双击“服务器”文件夹,共享文件夹就会出现,右击共享文件夹中的VB程序(*.exe),发送到-桌面快捷方式。b、如果是Windows 2000系统,双击临近计算机,其他和a相同。

好了,现在就可以调用“服务器”中你的VB程序了。

如果你要发布到公网,在发布打包你的程序时,不要选择打包,而选择展开,其他的问题你应该知道的,我就不罗嗦了。

这个很简单,一个服务端和一个客户端。

我们先画一个服务端界面,两个textbox,一个command,一个winsock,非别为:Text1,text2,command1

text1用于填写你需要发拍腊烂送的信息

text2用于显示接收的信息

command1用于发送信息

winsock1用于创建连接

客户端和服务端的界袭漏面一样。

接下来我们开始写代码:

服务端:

Private Sub Command1_Click()

Dim a As String

Text2.Text = Text2.Text &vbCrLf &Text1.Text

a = Text1.Text

Winsock1.SendData a

End Sub

Private Sub Form_Load()

Winsock1.Close

Winsock1.LocalPort = 4981 '这里填写你要监听的端口

Winsock1.Listen '开始监听

End Sub

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)

Winsock1.Close

Winsock1.Accept requestID

End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

Dim a As String

Winsock1.GetData a

Text2.Text = Text2.Text &vbCrLf &a

End Sub

Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)

Winsock1.Close '如果出错则关闭连接

End Sub

客户端:

Private Sub Command1_Click()

Dim a As String

Text2.Text = Text2.Text &vbCrLf &Text1.Text

a = Text1.Text &vbCrLf

Winsock1.SendData a

End Sub

Private Sub Form_Load()

Winsock1.Close

Winsock1.RemoteHost = "wenlvzhao.3322.org" '这里填写你的静态IP或者是动态域名

Winsock1.RemotePort = 4981 '这里填局模写连接的端口

Winsock1.Connect

End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

Dim a As String

Winsock1.GetData a

Text2.Text = Text2.Text &vbCrLf &a

End Sub

Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)

Winsock1.Close '如果出错则关闭连接

End Sub


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12349556.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存