c++网络编程加扫雷程序

c++网络编程加扫雷程序

ID:23636075

大小:2.58 MB

页数:344页

时间:2018-11-09

c++网络编程加扫雷程序_第1页
c++网络编程加扫雷程序_第2页
c++网络编程加扫雷程序_第3页
c++网络编程加扫雷程序_第4页
c++网络编程加扫雷程序_第5页
资源描述:

《c++网络编程加扫雷程序》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第1章客户机/服务器开发本章主要向读者介绍使用Winsock开发典型客户机/服务器程序的方法。本章精选了5个实例程序从易到难,包括TCP客户机/服务器程序、多线程TCP服务器、通过Internet传输文件,以及时间协议的具体应用。1.1Winsock编程入门——简单的TCP服务器本节通过一个简单的TCP服务器实例来讲述基本的Winsock编程。实例程序在配套光盘的SimpleTcpServerSrc工程下。1.1.1Winsock编程简介Winsock是Windows下网络编程的标准接口,它允许两个或多个应用程

2、序在同一台电脑上,或者是通过网络相互交流。Winsock是真正的协议无关的接口,本节详细介绍Winsock编程的方法。如果仅有一台电脑,也仍然能够进行Winsock编程。可以使用本地回环地址127.0.0.1。这样的话,如果有一个TCP服务器运行在你的电脑上,那么运行在此电脑上的客户程序使用这个回环地址,即可连接到服务器。1.1.2简单的TCP服务器下面一步步创建简单的TCP服务器。在此之前,还要做下面这些准备工作,以便可以真正的进行Winsock编程。l使用VC++6.0AppWizard创建一个Win32控

3、制台应用程序。l记住要设置选项,以便添加对MFC的支持。l打开文件stdafx.h,添加语句:#include。l在winsock2.h之后,还要包含conio.h和iostream.h。l打开菜单ProjectSettings,切换到Link选项卡,向库模块列表中添加ws2_32.lib。或者,直接在代码中添加语句:#pragmacomment(lib,"WS2_32"),以便链接到WS2_32.DLL库。因为所有的Winsock函数都是从WS2_32.DLL导出的。1.main函数

4、在main函数中启动一个线程,然后循环调用_getch()。_getch()仅简单地等待键盘输入,返回被按键的ASCII值。ESCAPE键的ASCII值是27,所以函数返回27后,程序才退出循环。当main函数返回,进程将终止,进程内的线程也将会终止。上述过程的具体程序代码如下。int_tmain(intargc,TCHAR*argv[],TCHAR*envp[])VisualC++网络程序设计实例详解·2·{intnRetCode=0;cout<<"PressESCAPEtoterminateprogram

5、r";AfxBeginThread(ServerThread,0);while(_getch()!=27);returnnRetCode;}2.ServerThread函数下面要做的是列出ServerThread函数的实现代码,使用注释来解释每行代码的作用。TCP服务器启动之后在端口20248监听。当有客户连接时,服务器向客户发回一个消息,告诉客户自己的IP地址,然后关闭连接,并继续到端口20248去接受连接。上述过程的具体程序代码如下。UINTServerThread(LPVOIDpParam){cout

6、<<"StartingupTCPserverr";//SOCKET实际上是一个unsignedint类型SOCKETserver;//WSADATA结构将有WSAStartup函数来填充WSADATAwsaData;//对TCP/IP套接字来说,sockaddr_in结构指定了套接字的地址//其他协议使用相似的结构sockaddr_inlocal;//WSAStartup函数负责加载Winsock库的函数//第一个参数用来指定想要加载的Winsock库的版本intwsaret=WSAStartup(0x1

7、01,&wsaData);//调用成功,WSAStartup函数返回0//失败的话,程序就退出if(wsaret!=0){return0;}//现在我们填充sockaddr_in结构local.sin_family=AF_INET;//地址家族Addressfamilylocal.sin_addr.s_addr=INADDR_ANY;//要求使用当前主机配置的所有IP地址local.sin_port=htons((u_short)20248);//使用的端口//socket函数用来创建我们的SOCKETserv

8、er=socket(AF_INET,SOCK_STREAM,0);//如果socket()函数调用失败,我们退出第1章客户机/服务器开发·3·if(server==INVALID_SOCKET){return0;}//为套接字关联本地地址的函数是bind.。//bind函数用在没有建立连接的套接字上,它的作用是绑定面向连接的或者无连接的套接字。//套接字被socket函数创建以后,存在

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。