网站大量收购闲置独家精品文档,联系QQ:2885784924

TCP网络程序框与实例.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TCP网络程序框与实例

实例程序说明 实例程序使用的编程环境为当前常用的Visual C++6.0。为了便于大家理解用Socket进行网络程序设计的原理,本程序使用了Visual C++6.0下的控制台程序“Win32 Console Application”。控制台程序的结构一目了然,使程序中各种Winsock API调用都非常清楚。 该程序中通信协议使用的是面向连接的TCP协议(SOCK_STREAM)。服务器端的IP地址使用系统指定的IP地址,端口号在程序中指定为5050,用符号常量来定义。 服务器端程序 /************************************************************************* 调试环境:Visual C++6.0 服务器IP地址:由系统指定 服务器端口号:5050 程序名称:server.cpp 程序功能:服务器端的程序当有客户提出连接请求时,在端口5050与客户端进行TCP连接, 连接成功后,显示客户IP地址和端口号,并给客户端发送 Hello! I am a server. 字符串。如果发送正确则显示所发送的字节数 命令格式:server **************************************************************************/ #includeWinsock2.h #includestdio.h #includestdlib.h //服务器使用的端口号为5050 #define DEFAULT_PORT 5050 void main( ) { int iPort=DEFAULT_PORT; WSADATA wsaData; SOCKET sListen, sAccept; //客户地址长度 int iLen; //发送的数据长度 int iSend; //要发送给客户的信息 char buf[ ]=I am a server.; //服务器和客户的地址 struct sockaddr_in ser, cli; printf(-------------------------------\n); printf(Server waiting\n); printf(-------------------------------\n); if(WSAStartup(MAKEWORD(2,2),wsaData)!=0) { printf(Failed to load Winsock.\n ); return; } //创建服务器端套接口 sListen=socket(AF_INET,SOCK_STREAM,0); if(sListen==INVALID_SOCKET) { printf(socket( )Failed:%d\n, WSAGetLastError( )); return; } //以下建立服务器端地址 ser.sin_family=AF_INET; //htons( )函数把一个双字节主机字节顺序的数转换为网络字节顺序的数 ser.sin_port=htons(iPort); //htonl( )函数把一个四字节主机字节顺序的数转换为网络字节顺序的数 //使用系统指定的IP地址INADDR_ANY ser.sin_addr.s_addr=htonl(INADDR_ANY); if(bind(sListen,(LPSOCKADDR)ser,sizeof(ser))==SOCKET_ERROR) { printf(bind( ) Failed: %d\n, WSAGetLastError( )); return; } //进入监听状态 if(listen(sListen,5)==SOCKET_ERROR) { printf(listen( ) Failed:%d\n,WSAGetLastError( )); return; } //初始化客户地址长度参数 iLen=sizeof(cli); //进入一个无限循环,等待客户的连接请求 while(1) { sAccept=accept(sListen,(struct sockaddr*)cli,iLen); if(sAccept==INVALID_SOCKET) { printf(accep

文档评论(0)

pep2233 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档