TCPIP实验报告

上传人:ni****g 文档编号:495954161 上传时间:2023-05-16 格式:DOCX 页数:25 大小:304.22KB
返回 下载 相关 举报
TCPIP实验报告_第1页
第1页 / 共25页
TCPIP实验报告_第2页
第2页 / 共25页
TCPIP实验报告_第3页
第3页 / 共25页
TCPIP实验报告_第4页
第4页 / 共25页
TCPIP实验报告_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《TCPIP实验报告》由会员分享,可在线阅读,更多相关《TCPIP实验报告(25页珍藏版)》请在金锄头文库上搜索。

1、TCP/IP技术实验报告书专业:通信工程学生XX:X世超完成时间:11:28AM实验一网络应用程序基础实验目的:通过实验,使学生熟悉并掌握运用TCP/IP技术进行网络编程的基本知识,加深对课堂教学内容的理解,掌握套接字网络通信编程技术,能够运用VC+为开发工具编程解决网络通信中的实际问题,进行一些简单的网络应用程序设计。实验内容:1,Winsock的启动与终止。2,Winsock的创建及绑定和关闭。3,建立通信连接listen及accept和connect4,数据的传输。5,简单的客户机/服务器之间的通信。要求:通过在SDK模式下完成数据通信的过程,掌握WindowsSocket的常用函数的形

2、式和使用方法,理解数据通信的过程。实验步骤:1,打开VC环境1,使用向导为客户端创建工程:选择可执行程序,选择使用wsa环境,单文档环境,其他的选择默认设置2,在文件中添加代码3,编译调试4,使用向导为服务器端创建工程:选择可执行程序,选择使用wsa环境,单文档环境,其他的选择默认设置5,在文件中添加代码6,编译调试7,分别打开两个系统命令窗口中,并分别在其中运行客户端和服务器端程序。8,在客户端侧输入字符,可以看到服务器收到字符串参考代码:课本156页-160页实验结果:Client:#include#include/服务器端口号为5050#defineDEFAULT_PORT5050#de

3、fineDATA_BUFFER1024voidmain(intargc,char*argv)WSADATAwsaData;SOCKETsClient;intiPort=DEFAULT_PORT;/从服务器端接收的数据长度intiLen;/接收数据的缓冲charbufDATA_BUFFER;/服务器端地址structsockaddr_inser;/判断输入的参数是否正确if(argc2)/提示在命令行中输入服务器IP地址printf(Usage:clientserverIPaddressn);return;/接收数据的缓冲区初始化memset(buf,0,sizeof(buf);if(WSASt

4、artup(MAKEWORD(2,2),&wsaData)!=0)printf(FailedtoloadWinsock.n);return;/填写要连接的服务器地址信息ser.sin_family=AF_INET;ser.sin_port=htons(iPort);/inet_addr()函数将命令行的点分IP地址转换为用二进制表示的网络字节顺序的IP地址ser.sin_addr.s_addr=inet_addr(argv1);/建立客户端流式套接口sClient=socket(AF_INET,SOCK_STREAM,0);if(sClient=INVALID_SOCKET)printf(so

5、cket()Failed:%dn,WSAGetLastError();return;/请求与服务器端建立TCP连接if(connect(sClient,(structsockaddr*)&ser,sizeof(ser)=INVALID_SOCKET)printf(connect()Failed:%dn,WSAGetLastError();return;else/从服务器端接收数据iLen=recv(sClient,buf,sizeof(buf),0);if(iLen=0)return;elseif(iLen=SOCKET_ERROR)printf(recv()Failed:%d,WSAGetL

6、astError();return;printf(recv()datafromserver:%sn,buf);closesocket(sClient);WSACleanup();Server:#include#include#include#pragmament(lib,ws2_32.lib)/服务器使用的端口号为5050#defineDEFAULT_PORT5050voidmain()intiPort=DEFAULT_PORT;WSADATAwsaData;SOCKETsListen,sAccept;/客户端地址长度intiLen;/发送的数据长度intiSend;/要发送给客户端的信息ch

7、arbuf=Iamaserver.;/服务器和客户端的IP地址structsockaddr_inser,cli;printf(n);printf(Serverwaitingn);printf(n);if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0)printf(FailedtoloadWinsock.n);return;/创建服务器端套接口sListen=socket(AF_INET,SOCK_STREAM,0);if(sListen=INVALID_SOCKET)printf(socket()Failed:%dn,WSAGetLastError();retur

8、n;/以下建立服务器端地址ser.sin_family=AF_INET;/htons()函数把一个双字节的主机直接顺序的数据转换为网络直接顺序的数ser.sin_port=htons(iPort);/htonl()函数把一个四字节的主机直接顺序的数据转换为网络直接顺序的数/使用系统制定的IP地址INADDR_ANYser.sin_addr.s_addr=htonl(INADDR_ANY);if(bind(sListen,(LPSOCKADDR)&ser,sizeof(ser)=SOCKET_ERROR)printf(bind()Failed:%dn,WSAGetLastError();retu

9、rn;/进入监听状态if(listen(sListen,5)=SOCKET_ERROR)printf(listen()Failed:%dn,WSAGetLastError();return;/初始化客户端地址长度参数iLen=sizeof(cli);/进入一个无限循环,等待客户的连接请求while(1)sAccept=accept(sListen,(structsockaddr*)&cli,&iLen);if(sAccept=INVALID_SOCKET)printf(accept()Failed:%dn,WSAGetLastError();break;/输出客户IP地址和端口号printf(

10、AcceptedclientIP:%s,port:%dn,inet_ntoa(cli.sin_addr),ntohs(cli.sin_port);/给建立连接的客户发送信息iSend=send(sAccept,buf,sizeof(buf),0);if(iSend=SOCKET_ERROR)printf(send()Failed:%dn,WSAGetLastError();break;elseif(iSend=0)break;elseprintf(send()byte:%dn,iSend);n);printf(closesocket(sAccept);closesocket(sListen);

11、WSACleanup();实验截图:实验二基于TCP协议的客户/服务器通信程序实验目的:通过实验,使学生熟悉并掌握运用TCP/IP技术进行网络编程的基本知识,加深对课堂教学内容的理解,掌握套接字网络通信编程技术,能够运用VC+为开发工具编程解决网络通信中的实际问题,进行一些简单的网络应用程序设计。实验内容:1,主机间TCP的性能测试之一:回程时延。2,服务器端能从客户端接收数据并立即将接收到的数据原样返回给客户方。3,客户端能往服务器端发送数据,然后立即接受从服务器端原样返回的数据。理解TCP通信程序设计过程,并结合特定应用场景(如创建留言板程序、创建多客户端服务器/客户通信程序等)完成程序开

12、发。掌握TCP服务器程序和客户程序的创建过程,熟悉单播通信程序中用到的Winsock接口,培养学生将所学知识进行灵活运用的能力。实验步骤:1,打开VC环境2,使用向导为客户端创建工程:选择可执行程序,选择使用wsa环境,单文档环境,其他的选择默认设置3,在文件中添加代码4,编译调试5,使用向导为服务器端创建工程:选择可执行程序,选择使用wsa环境,单文档环境,其他的选择默认设置6,在文件中添加代码7,编译调试8,分别打开两个系统命令窗口中,并分别在其中运行客户端和服务器端程序。9,在客户端着输入字符,可以看到服务器收到字符串注:可以再实验一的代码上修改,自己增加额外的功能,比如取系统时间,计算

13、往返时间等作完之后,修改通信代码使用UDP来实现网络通信实验结果:Client:#include#include#include#defineDEFAULT_PORT5050#defineDATA_BUFFER1024#pragmament(lib,WS2_32.lib)voidmain(intargc,char*argv)WSADATAwsaData;SOCKETsClient;intiPort=5050;intiLen;intisend,iRecv;charsend_buf=Hello!Iamaclient;charrecv_bufDATA_BUFFER;structsockaddr_in

14、ser;if(argc2)printf(输入服务器的IP地址:n);return;elsememset(recv_buf,0,sizeof(recv_buf);if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0)printf(Winsock环境初始化失败:n);return;sClient=socket(AF_INET,SOCK_DGRAM,0);if(sClient=INVALID_SOCKET)printf(socket()函数调用失败:dn,WSAGetLastError();return;ser.sin_family=AF_INET;ser.sin_port=htons(iPort);ser.sin_addr.s_addr=inet_addr(argv

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号