Winsock编程在《计算机网络基础》教学中的应用

2014-08-07 01:44蒋力
广东教育·职教版 2014年6期
关键词:IP地址

作者简介:蒋力(1985-),男,东莞市电子科技学校讲师,硕士。研究方向:计算机网络。

摘要:该文简要介绍Winsock控件的基础知识,使用VB编写实现远程计算机通信的程序。通过程序的运行,帮助学生学习计算机网络中本机IP地址、回环地址、广播地址以及端口号的概念。

关键词:Winsock;IP地址 ;端口号

中图分类号:G712文献标识码:A文章编号:1005-1422(2014)06-0146-02在计算机网络学习中, OSI参考模型的抽象七层结构晦涩难懂。本校网络班学生学习《计算机网络基础》之前,已有VB编程基础设计做基础,具有一定的编程能力和理解能力。因此本文通过在Visual Basic中利用Winsock控件进行网络通讯程序的编程,使学生能够更好地理解IP地址和端口号的概念。

一、Winsock控件基础

Winsock控件在程序设计时,是可见的。在程序执行过程中,虽然隐藏在执行的窗体之中,但是它可以为有关网络通讯方面的程序设计提供依据。该控件的使用,使得调用TCP或UDP网络服务极为便利。因此,在编写有关应用程序时,只需简单了解TCP通讯协议和低级的Winsock API调用方式,学生学习时简单易懂。

1.TCP协议

TCP协议的全名为“传输控制协议(transfer control protocol)”,这是目前在互联网上使用的主要协议,例如http,ftp,SMTP等,都是基于这个面向连接的协议。因此,当使用TCP协议连接两个网络上的设备时,将可以在它们之间交换希望交换的数据。如果正在建立主机端应用程序时,必须指定本机和本机(执行应用程序所在的计算机)所用的连接端口号,接着将Winsock控件设置为“监听(listen)”,即可等候远程客户端进行调用与连接。因此,当主机端接收到客户端调用并且要求连接的信息时,将会触发“要求连接()”的事件,接着进行标准“允许”或是“拒绝”的程序。

一旦主机端与客户端连接完成之后,将可以开始使用“传送数据(senddata)”方法,将数据传送给对方同时,在数据传达对方的计算机时,将会触发对方计算的“接收数(dataarrival)”事件。此时,可以使用“取得数据(getdata)”方法,来去出这些接收到的数据。

2.Winsock控件

(1)该次编程中涉及的Winsock的属性,如下:LocalHostName属性(本地主机名称);LocalIP属性(本地主机IP);LocalPort属性(本地主机端口);RemoteHost属性(远程主机名称);RemotePort属性(远程主机端口);Protocol属性(Winsock控件)(协议【TCP、UDP】);Name属性(控件的名称);State属性,返回WinSock控件当前的状态。

(2)该次编程需用到的三个方法:Bind,SendData和GetData。

Bind 方法 ,指定用于 TCP 连接的 LocalPort 和 LocalIP。

SendData方法,当连接建立后,要发送数据就可以调用SendData方法,该方法只有一个参数,就是要发送的数据。

GetData方法,当本地计算机接收到远程计算机的数据时,数据存放在缓冲区中,要从缓冲区中取出数据,可以使用GetData方法。

(3)DataArrival事件当建立连接后,接受到了新数据就会触发这个事件。注意:如果在接受到新数据前,缓冲区中非空,就不会触发这个事件。

二、程序的主要设计和代码

程序的主界面是一个窗体,包含四个文本框控件、两个命令按钮和一个LIST控件。四个文本框控件分别用来做监听的端口号、远端的IP地址和端口号、发送的内容。两个命令按钮,分别做监听、发送命令。LIST控件用来显示发送和接受的内容。

1.在窗体中添加一个Winsock控件,将其Protocol属性改为1-sckUDPprotocol。

2.将“发送”按钮命名为command1, “监听”按钮命名为command2,监听端口下的text文本框命名为text1,两部电脑图标的Winsock控件命名为wc1,双击“监听”按钮输入如下程序,

If wc1.State = 1 Or wc1.State = 2 Then

wc1.Close

Command1.Enabled = False

End If

wc1.Bind CInt(Text1.Text)

Command1.Enabled = true

将“IP”右边的文本框命名为Text3, text属性改为你的电脑的IP, “端口”右边的文本框命名为Text4,双击“发送”按钮,“要发送的数据”下面的文本框命名为Text5,输入如下代码:

Dim ff As String

ff = Text4.Text

wc1.RemoteHost = Text2.Text

wc1.RemotePort = Text3.Text

wc1.SendData ff

3.双击两部电脑图标,从代码窗口上部选择DataArrival事件,并输入如下代码:

Dim kk As String

wc1.GetData kk

List1.AddItem kk + “发送者IP:” + wc1.RemoteHostIP,0

开始运行程序。

三、Winsock程序测试

1.使用回环地址

回环地址127.0.0.1,被称为本地回环地址(Loop back address)。它代表设备的本地虚拟接口,在windows操作系统中也有相似的定义,不安装网卡前可以ping通本地回环地址。该程序可以用回环地址自己给自己发信息。

2.对方IP地址通信

相互之间发信息,需用端口号和IP。通过与对方通信,来帮助学生理解传输层中端口号的概念。案例:同学A监听端口号9090,同学B监听8080,已知A的IP地址是192.168.1.103,B的IP地址是192.168.1.102,那么A给B发信息,就需要B监听8080端口,A使用IP地址192.168.1.102发送信息。如果B给A发信息,就需要A监听9090端口,B使用IP地址192.168.1.103.

3.广播地址通信

广播地址是专门用于同时向网络中所有工作站发送信息的地址。在使用TCP/IP 协议的网络中,主机标识段host ID 为全1 的IP 地址为广播地址,广播分组传送给host ID段所涉及的所有计算机。

在实际教学中,机房IP地址段192.168.1.0/24的广播地址为192.168.1.255,发送端口为8080,所有同学监听8080端口,发送的信息全部同学可以同时接收。

四、总结

通过此次实验,不仅锻炼了学生的VB编程能力,同时用自己编写的程序来互相发送信息,让学生体验网络编程带来的成就感.帮助学生理解计算机网络中传输层的端口号和网络层IP地址的相关概念,同时了解了计算机网络中回环地址,本机地址和广播地址的相关概念,提高了学生学习计算机网络的兴趣.

参考文献:

[1]Andrew S.Tanenbau计算机网络第四版[M].北京:清华大学出版社,2005.

[2]范剑波.Visual Basic网络程序设计[M].北京:科学出版社,2003.

[3]鲁斌,李莉. 网络程序设计与开发 [M].北京:清华大学出版社,2010.

责任编辑朱守锂

猜你喜欢
IP地址
修改Hosts文件加快网站的访问速度
网络地址转换技术在局域网中的应用
“秒拨”动态IP切换技术的性质评析
IP地址管理模式
探讨校园网中IP地址的动态分配
《IP地址及其管理》教学设计
计算机的网络身份IP地址
企业中服务器的应用
轻松明白网络IP地址以及子网划分问题
浅谈绑定之应用