网络计算实验指导书

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机科学与技术学院

网络计算设计与实现

实验指导书

实验一SOCKET编程

【试验环境】

计算机、TCP/IP协议、VS2005

【实验目的】

1.理解基本TCP/IP协议编程原理;

2.掌握如何利用SOCKET编写网络程序;

3.掌握VS2005编程环境,多线程程序设计等。

【实验要求】

1.编写一个服务端的程序,接收来自客户端的访问请求,并返回相关信息;

2.编写一个客户端程序,向服务端发送连接请求,并显示返回的结果;

3.完善服务端程序,使它能够同时支持多个客户端的请求。

【预备知识】

p ublic Socket Accept ():为新建连接创建新的Socket。

public void Bind (EndPoint localEP):使Socket 与一个本地终结点相关联。

public void Close ():关闭Socket 连接并释放所有关联的资源。

public void Connect (EndPoint remoteEP):建立与远程主机的连接。注意这个方法有重

载方法。

public void Disconnect (bool reuseSocket):关闭套接字连接并是否允许重用套接字。

public void Listen (int backlog):将Socket 置于侦听状态。

public int Receive (byte[] buffer):接收来自绑定的Socket 的数据。注意这个方法有重

载方法。

public int ReceiveFrom (byte[] buffer,ref EndPoint remoteEP):接收数据报并存储源终结

点。注意这个方法有重载方法。

public int Send (byte[] buffer):将数据发送到连接的Socket。注意这个方法有重载方

法。

public void SendFile (string fileName):将文件和可选数据异步发送到连接的Socket。

注意这个方法有重载方法。

public int SendTo (byte[] buffer,EndPoint remoteEP):将数据发送到特定终结点。注意这

个方法有重载方法。

public void Shutdown (SocketShutdown how):禁用某Socket 上的发送和接收。

因为在网络传输时传输的数据都是二进制形式的(表现为字节数组),所以如果要传输类似于中文这样的双字节字符就需要在传输之前用合适的编码转换成字节数组,然后接收方

按照发送方的编码将接收到字节数组转换成字符串。另外,注意接收数据的时候是先声明了一个字节数组,然后将接收到的数据保存到字节数组中,这个方法有个返回值表示实际接收了多少字节数据。

【实验内容】

实现一个服务器端的面向连接的Socket用于接收客户端的请求的话,有如下步骤:

1.首先根据IP地址和端口号实例化一个Socket,注意端口要要大于1024并且不要使用

特殊端口号,要大于1024的原因是1024以下的端口号已经被指派了,而1433、3306

这样的端口号已经被用作SQL Server和MySQL的默认端口号了,若指定为这些端口

号容易发生冲突。

2.接着调用Bind()方法进行绑定,然后再调用Listen()方法用于监听,Listen()方法的参数

用于指定监听的队列大小,也就是最多可容纳的等待接受的传入连接数。

3.再调用Accept()方法,调用这个方法之后会是程序处于阻塞状态,直至有客户端连接

为止。当有客户端连接,这个方法将会返回一个新的Socket,使用这个Socket与客户

端进行通讯。

4.使用Accept()方法返回的新Socket的Send()方法就可以向客户端发送数据了,还可以

使用这个新Socket的Receive()接收客户端的数据。

5.最后终止与客户端会话时,注意使用ShutDown()方法关闭Socket连接,并且使用Close()

方法释放所占用的资源。

ServerSocket类代码

SocketThread类代码

1.首先指定远程主机和端口号实例化Socket类,注意连接的端口号一定要与服务器监听的

端口号一致。

2.接着调用Connect()方法连接远程主机。

3.连接到远程主机之后就可以调用Send()方法向服务器发送请求了,然后可以调用

Receive()方法接收服务器响应数据,注意如果是发送的类似于中文这样的双字节字符串的话,还需要按照服务器响应的字符串编码将字节数组转换成字符串。

Clinet类代码

实验二HTML与XML应用

【试验环境】

配置有windows记事本的计算机设备

【实验目的】

1.通过本实验,使学生能够了解并掌握XML Schema的定义方法及其用途

2.了解并掌握Schema的基本结构

3.了解并掌握Schema的数据类型

4.了解并掌握Schema的元素声明

5.了解并掌握Schema的属性声明

【实验要求】

1.能参照示例XML文件进行对应的XML Schema定义

2.能利用Schema对XML文件进行验证

【实验内容】

JinYanZhong XML File Schema Test

[]

(3)定义bookcaseType类型(添加在[]处)

(4)定义bookcase元素(紧随bookcaseType类型定义之后)

(5)定义bookType元素类型(里面引用定义authorType, pub-houseType)

相关文档
最新文档