c++基于tcp和udp的socket通信

c++基于tcp和udp的socket通信

ID:3663465

大小:667.80 KB

页数:36页

时间:2017-11-22

c++基于tcp和udp的socket通信_第1页
c++基于tcp和udp的socket通信_第2页
c++基于tcp和udp的socket通信_第3页
c++基于tcp和udp的socket通信_第4页
c++基于tcp和udp的socket通信_第5页
资源描述:

《c++基于tcp和udp的socket通信》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、C++基于TCP和UDP的socket通信2011-08-1812:44 5562人阅读 评论(5) 收藏 举报sockettcpc++服务器streaminternet    TCP和UDP属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它事先为要发送的数据开辟好连接通道(三次握手),然后再进行数据发送;而UDP则不为IP提供可靠性,一般用于实时的视频流传输,像rtp、rtsp就是建立在udp的基础上的。    首先谈谈tcpsocket   tcp简单的三次握手过程如图,   SYN(SynchronizeSequenceNumbers):同步

2、标志    ACK(AcknowledgementNumber)        :确认标志   图中可以看出,三次握手的过程是在c的connect()和s的bind()、listen()、accept()函数中完成的,这样开辟了相对可靠的连接通道,来传输数据。UDP的socket编程过程如下图所示:下面翠花上代码啦!服务端:[cpp] viewplaincopy1.#include   2.#include  //windows socket的头文件  3.  4.#pragma comment( lib, "ws

3、2_32.lib" )// 链接Winsock2.h的静态库文件  5.  6.void main()  7.{  8.    //初始化winsocket  9.    WORD wVersionRequested;  10.    WSADATA wsaData;  11.    int err;  12.  13.    wVersionRequested = MAKEWORD( 1, 1 );//第一个参数为低位字节;第二个参数为高位字节  14.  15.    err = WSAStartup( wVersionRequested, &wsaD

4、ata );//对winsock DLL(动态链接库文件)进行初始化,协商Winsock的版本支持,并分配必要的资源。  16.    if ( err != 0 )  17.    {  18.        return;  19.    }  20.  21.    if ( LOBYTE( wsaData.wVersion ) != 1 

5、

6、HIBYTE( wsaData.wVersion ) != 1 )//LOBYTE()取得16进制数最低位;HIBYTE()取得16进制数最高(最左边)那个字节的内容        22.    {  23. 

7、       WSACleanup( );  24.        return;  25.    }  26.  1.    SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);//创建socket。AF_INET表示在Internet中通信;SOCK_STREAM表示socket是流套接字,对应tcp;0指定网络协议为TCP/IP  2.  3.    SOCKADDR_IN addrSrv;   4.    addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY); //hto

8、nl用来将主机字节顺序转换为网络字节顺序(to network long)  5.    //INADDR_ANY就是指定地址为0.0.0.0的地址,  6.    //表示不确定地址,或“任意地址”。”  7.    addrSrv.sin_family=AF_INET;   8.    addrSrv.sin_port=htons(4000);//htons用来将主机字节顺序转换为网络字节顺序(to network short)  9.  10.    bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR))

9、;//将本地地址绑定到所创建的socket上,以使在网络上标识该socket  11.  12.    listen(sockSrv,5);//socket监听,准备接受连接请求。  13.  14.    SOCKADDR_IN addrClient;  15.    int len=sizeof(SOCKADDR);  16.  17.    while(1)  18.    {  19.        SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);//为一个连接请求提供服务。a

10、ddrClient包含了发出连接请求的客户机IP地址信息;返回的新

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

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

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