1. 当两台计算机分别和中继器、二层交换机、三层交换、路由器相连时,请分别画出计
算机与交换设备五层参考模型;
计算机A应用层计算机B应用层传输层传输层网络层网络层数据链路层数据链路层中继器物理层物理层物理层 计算机A应用层计算机B应用层传输层传输层网络层二层交换机数据链路层网络层数据链路层数据链路层物理层物理层物理层 计算机A应用层计算机B应用层传输层三层交换机网络层传输层网络层网络层数据链路层数据链路层数据链路层物理层物理层物理层
计算机A应用层计算机B应用层传输层路由器网络层传输层网络层网络层数据链路层数据链路层数据链路层物理层物理层物理层 2. 学习SOCKET编程,写出TCP、UDP通信流程;将实例程序两个同学一组,实现两台计
算机之间通信.并写出学习报告;
(a)TCP通信流程
准备阶段:
服务器程序首先进行初始化操作:
(1) 调用socket创建一个套接字
(2) 函数bind将这个套接字与服务器公认地址绑定在一起
(3) 函数listen将这个套接字转换成倾听套接字(listening socket)
(4)
调用函数accept来接受客户机的请求.
客户机程序初始化操作:
(1) 客户机调用函数socket创建一个套接字
(2) 调用函数connect来与服务器建立连接。
连接建立之后,客户机与服务器通过读(read())、写(write())套接字来进行通信。如下图:
服务器端SocketTCP通信流程客户端bindSocketListenconnectwritesendsendwritecloseclose (b)UDP通信流程
准备阶段:
服务器程序首先进行初始化操作:
(1)调用socket创建一个套接字
(2)函数bind将这个套接字与服务器公认地址绑定在一起
客户机程序初始化操作:
(1)客户机调用函数socket创建一个套接字
客户机与服务器通过读(sendto())、写(recvfrom())套接字来进行通信.如下图:
服务器端SocketUDP通信流程客户端bindSocketrecvfromsendtosendtorecvfromcloseclose (c)实验报告
实现两台计算机之间通信
(1)首先在cmd下输入ipconfig获取本机IP信息,如下所示:
(2)然后记录相应的IP地址,再将客户端代码中的*Serip=”127.0。的”127.0。0.1\"替换为该IP地址
(3)先运行服务器端,再运行客户端,运行截图如下所示
0。1”中
(d)代码中遇到的问题
在测试代码的时候遇到了很多错误:
(1) #include〈iostream。h〉改为#include (3) break后添加分号 (4) 因为我用的是codeblocks,然后在设置-编译器-连接器设置-添加,添加 libws2_32。a, 我的libws2_32。a在c\\MinGW\\lib\\libws2_32.a下 (d)个人感悟 通过这次对socket编程的学习,我对socked编程有了一个大致的了解,实现了初步 的TCP和UDP形式的客户端与服务器端的通信。这次实验我对网络编程产生了浓厚的兴趣,同时提高了以后学习计算机网络这门课的自信心. 因篇幅问题不能全部显示,请点此查看更多更全内容