基于tcp的socket编程

基于tcp的socket编程

ID:30988790

大小:76.91 KB

页数:10页

时间:2019-01-05

基于tcp的socket编程_第1页
基于tcp的socket编程_第2页
基于tcp的socket编程_第3页
基于tcp的socket编程_第4页
基于tcp的socket编程_第5页
资源描述:

《基于tcp的socket编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于TCP(而向连接)的socket编程,分为客户端和服务器端。客户端的流程如下:(1)创建套接字(socket)(2)向服务器发出连接请求(connect)(3)和服务器端进行通信(send/recv)(4)关闭套接字服务器端的流程如下:(1)创建套接字(socket)(2)将套接字绑定到一个本地地址和端口上(bind)(3)将套接字设为监听模式,准备接收客户端请求(listen)(4)等待客户请求到来;当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept)(5)用返回的套接字和客户端进行通信(send/re

2、cv)(6)返回,等待另一个客户请求。(7)关闭套接字。下而通过一个具体例子讲解一下具体的过程和相关的函数。客户端代码,运行于VS2008

3、[cpp]viewplaincopy1.//ClientTest.cpp:定义控制台应用程序的入口点。2.//3.3.#include"stdafx.h"4.#inelude6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.

4、42.43.44.45.46.47.48.49.#include#include〈winsock2.h>#defineSERVERPORT5208//侦听端口int_tmain(intargc,_TCHAR*argv[]){WORDwVersionRequested;WSADATAwsaData;intret;SOCKETsClient;//连接套接字structsockaddr_insaServer;//服务器地址信息char*ptr;BOOLfSuccess=TRUE;//WinSock初始化wVersionR

5、equested=MAKEWORD(2,2);//希望使用的WinSockDLL的版木ret=WSAStartup(wVersionRequestedSwsaData);//加载套接字库if(ret!=0){printf("WSAStartup()failed!");//return0;}〃确认WinSockDLL支持版本2.2if(LOBYTE(wsaData.wVersion)!=2

6、

7、HIBYTE(wsaData.wVersion)!=2){WSACleanup();//释放为该程序分配的资源,终止対winsock动态库的使

8、用printf("InvalidWinSockversion!");//return0;}//创建Socket,使用TCP协议sClient=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);if(sClient==INVALID_SOCKET){WSACleanup();printf("socket()failed!");//return0;}//构建服务器地址信息saServer.sin_family=AF_INET;〃地址家族saServer.sin_port=htons(SERVER_PO

9、RT);//注意转化为网络节序50.51.52.53.saServer.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");〃连接服务器ret=connect(sClient,(structsockaddr*)&saServer^sizeof(saServer));54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.78.79.80.if(ret==SOCKET_ERROR){printf("connect(

10、)failed!");closesocket(sClient);//关闭套接字WSACleanup();//return0;}charsendMessagef]="ZhongXingPengYue";ret=send(sClient,(char*)&sendMessage,sizeof(sendMessage),0);if(ret==SOCKET_ERROR)printf("send()failed!");}elseprintf("clientinfohasbeensent!”);charrecvBuf[100];recv(s

11、Client>recvBuf^100^0);printf(l,%sMrecvBuf);closesocket(sClient);〃关闭套接字WSACleanup();getchar();//return0;}

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

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

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