实验一WinSock点对点通信程序_第1页
实验一WinSock点对点通信程序_第2页
实验一WinSock点对点通信程序_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机网络实验WinSock点对点通信程序实验目的:WinSock是Windows操作系统下的Socket编程接口,通过 WinSock函数库 可以实现基于TCP/IP协议的进程之间通信。理解基于WinSock的客户/服务器概念 掌握使用WinSock进行编程 的方法了解常见WinSock开发模式的使用实验内容:基于WinSock开发一个简单的客户/服务器文本传输程序,客户端 能够发送由标准输入得到的文本,服务器能够接收并将其显示在标准输出上。实验环境:程序运行环境为以太网,采用TCP/IP协议栈,网络操作系统为Windowso程序开发环境为Visual C+6.0版本实验步骤:步骤1需求分析

2、程序功能为:(1) 服务器可以接受任何客户的连接(2) 服务器在同一时刻只能与一个客户通信,直到该客户退出才可以接 收下一个客户。(3) 客户程序使用命令行参数指定服务器地址(4) 客户端输入的文本都发送给服务器(5) 客户使用Ctrl+C键停止发送,关闭连接步骤2服务器程序开发以Visual C+Console控制台程序的形式编写服务器程序,服 务器 程序采用循环服务器的模式,不支持多线程操作。步骤3客户端程序开发以Visual C+Console控制台程序的形式编写客户程序,与服 务器建 立连接后开始接收标准输入的文本,并发送到服务器。步骤4编译和执行程序在Visual C+开发环境中包含

3、必要的头文件和连接的WinSock库, 分别进行客户程序和服务器程序的编译和连接,生成可执行文件。首先运 行服务器程序,然后运行客户程序,测试程序运行结果是否符合要求。实验结果:首先服务器端开始工作,进入监听端口的状态,当客户端向他发送 连接请求时,建立连接。服务器端:忙;伙三下学习宿芜丨计算机网绪或屢以验一 :Win: o ”点对点谨信程序gw 齬擁时02inn for a client ta connect(等待连接)程序设置的服务器端的地址是:端口号是20。客户端:(服务器端)当客户端输入服务器的地址和端口以后就连接上了,当客户端发送数据时,服务器端能看到发送的数据。发送数据以后服务器端

4、与客户端的情况:D:A三下学习相关计算机确实践遵一: D;伏三下字习相关计算机网络实践侯殓服条雷II土I卜:12700.3地 土1 卜:127-0-0.2端口岂20ijD: 20Uait ingr for a c lient to connect.左关,45456Client Connected.Bytes Sent11 5接收二4545&发送:22222Bytes Recu/5Sent; 5接收=22222发送:222222Bymw Recu: 5Bytes Sent: 6接收:222222发送:Bytes Recu: E(当客户端发送数据后服务器端的情况)实验总结:通过本次的实验让

5、我对win sock的服务器和客户的概念有了一定 的认 识,特别的对于客户与服务器之间建立连接的过程有了进一步的认识,而且 我也初步掌握了 win sock编程的方法,这些都让我受益匪浅。在这次的实验中,我仅仅用到了 win sock编程的一些简单功能,还有很多的其他的功能没有使用到,其它很多功能都需要我们课下研究,在以后的学习中不断去掌握。Client :#inelude <stdio.h> #include <winsock2.h>#pragma comment(lib, "ws2_32.lib")void main() char ip15; i

6、nt port;printf(n 地址:H); scanf(H%su,ip);printf(n 端口 :H); scanf(n%dn,&port);初始化Winsock.WSADATA wsaData;int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );if (iResult != NO_ERROR ) printf(HError at WSAStartup()nH);建立 socket socket.SOCKET client;client = socket( AFJNET, SOCK_STREAM, IPPROTO_TCP

7、 );if ( client = INVALID_SOCKET ) printf( "Error at socket(): %ldn”, WSAGetLastError(); WSACIeanup(); return;/ 连接到服务器 sockaddrjn clientservice;if ( connect( client, (SOCKADDR*) &clientService, sizeof(clientService) ) = SOCKET ERROR) printf( "Failed to connectAn"); WSACIeanup();ret

8、urn;发送并接收数据int bytesSent;int bytesRecv = SOCKET ERROR;char sendbuf32 =,H,;while(1)(printf(u 发送:H); scanf(H%sH,sendbuf);bytesSent = send( client, sendbuf, strlen(sendbuf), 0 ); if(sendbufO=,J&&sendbuf1=,J) break;printf( "Bytes Sent: %ldnn", bytesSent);return;Server :#inelude <std

9、io.h> #include vwinsock2.h> #pragma comment(lib, Hws2_32.libH) void main() /初始化WSADATA wsaData;int iResult = WSAStartup( MAKEWORD(2,2), &wsaData ); if (iResult != NO_ERROR ) printf(”Error at WSAStartup()nH);建立 socketSOCKET server;server = socket( AFJNET, SOCK_STREAM, IPPROTO_TCP );if ( ser

10、ver = INVALID_SOCKET ) printf( "Error at socket(): %ldn", WSAGetLastError(); WSACIeanup();return;/ 绑定 socket sockaddrjn service;printf(n 服务器地址:端 口号:20nH);if ( bind( server, (SOCKADDR*) &service, sizeof(service) ) = SOCKET_ERROR )(printf( "bind() failedAn"); closesocket(server

11、):return;/ 监听 socketif (listen( server, 1 ) = SOCKET_ERROR ) printf( "Error listening on socket.n");接受连接 SOCKET AcceptSocket;prin tf( "Waiting for a die nt to conn ect.n”); while (1) AcceptSocket = SOCKETERROR;while ( AcceptSocket = SOCKET ERROR ) AcceptSocket = accept( server, NULL, NULL );printf( HClient Connected.nn'f);server = AcceptSocket;break;发送接受数据int bytesSent;int bytesRecv = SOCKET ERROR;char recvbuf32 = m,;while(1)(byt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论