socket 编程.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:7 大小:71KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

socket 编程.doc

socket编程.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

最近由于本人对网络编程的喜爱,所以对一点关于TCP协议socket编程的总结。由于本人的能力有限,写的可能过于简单,只适合初学者,欢迎大牛提出宝贵的意见,本人会感激不尽的。废话少说了,进入正题。(下面代码是基于VC6.0)下图是一般socket编程图。服务器的建立:获取的本机名,用来解析得到本机的IP地址的;接着就绑定IP地址成功,然后服务器就处于监听状态,等待客户端的连接。也就是接下来就是TCP/IP的三次握手的操作,该操作成功了服务器和客户端就可以进行通信了。以下是注释代码:[cpp]HYPERLINK"http://blog.csdn.net/shiren_bod/article/details/6647022"\o"viewplain"viewplainHYPERLINK"http://blog.csdn.net/shiren_bod/article/details/6647022"\o"copy"copyHYPERLINK"http://blog.csdn.net/shiren_bod/article/details/6647022"\o"print"printHYPERLINK"http://blog.csdn.net/shiren_bod/article/details/6647022"\o"?"?voidsocketConnect(){charServer_name[128];WSADATAwsaData;structhostent*hp;structsockaddr_inaddrServer;WSAStartup(0x202,&wsaData);sockfd=socket(AF_INET,SOCK_STREAM,0);//socketgethostname(Server_name,128);hp=gethostbyname(Server_name);//获取本机名printf("本机名:%s\n",Server_name);memset(&addrServer,0,sizeof(addrServer));//初始化memcpy(&(addrServer.sin_addr),hp->h_addr,hp->h_length);//设置服务器的IP地址addrServer.sin_family=AF_INET;//设置版本addrServer.sin_port=htons((unsignedshort)SERVER_PORT);//设置端口号//bind....绑定ip地址和端口号if(SOCKET_ERROR==bind(sockfd,(LPSOCKADDR)&addrServer,sizeof(addrServer))){printf("Bindsocketerror!\n");//exit(1);}else{printf("绑定socketsuccess...\n");}listen(sockfd,5);//listening...监听printf("服务器监听状态...\n");ZeroMemory((void*)&addrtemp,sizeof(addrtemp));nlen=sizeof(addrtemp);connfd=accept(sockfd,&addrtemp,&nlen);//accept...三次握手printf("acceptclientsuccess...\n\n");}voidsocketConnect(){charServer_name[128];WSADATAwsaData;structhostent*hp;structsockaddr_inaddrServer;WSAStartup(0x202,&wsaData);sockfd=socket(AF_INET,SOCK_STREAM,0);//socketgethostname(Server_name,128);hp=gethostbyname(Server_name);//获取本机名printf("本机名:%s\n",Server_name);memset(&addrServer,0,sizeof(addrServer));//初始化memcpy(&(addrServer.sin_addr),hp->h_addr,hp->h_length);//设置服务器的IP地址addrServer.sin_family=AF_INET;//设置版本addrServer.sin_port=htons((unsignedshort)SERVER_PORT);