基于TCP的Socket 编程

基于TCP的Socket 编程

ID:39474338

大小:179.72 KB

页数:11页

时间:2019-07-04

基于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/recv)(6)返回,等待另一个

2、客户请求。(7)关闭套接字。 下面通过一个具体例子讲解一下具体的过程和相关的函数。客户端代码,运行于vs2008[cpp] viewplaincopy1.// ClientTest.cpp : 定义控制台应用程序的入口点。  2.//  3.  4.#include "stdafx.h"  5.#include   1.#include   2.#include   3.  4.#define SERVER_PORT 5208 //侦听端口  5.  6.  7.int _tmain(int argc

3、, _TCHAR* argv[])  8.{  9.    WORD wVersionRequested;  10.    WSADATA wsaData;  11.    int ret;  12.    SOCKET sClient; //连接套接字  13.    struct sockaddr_in saServer; //服务器地址信息  14.    char *ptr;  15.    BOOL fSuccess = TRUE;  16.  17.    //WinSock初始化  18.    wVersionRequested = MAKEWO

4、RD(2, 2); //希望使用的WinSock DLL的版本  19.    ret = WSAStartup(wVersionRequested, &wsaData);  //加载套接字库  20.    if(ret!=0)  21.    {  22.        printf("WSAStartup() failed!");  23.        //return 0;  24.    }  25.    //确认WinSock DLL支持版本2.2  26.    if(LOBYTE(wsaData.wVersion)!=2 

5、

6、 HIBYT

7、E(wsaData.wVersion)!=2)  27.    {  28.        WSACleanup();   //释放为该程序分配的资源,终止对winsock动态库的使用  29.        printf("Invalid WinSock version!");  30.        //return 0;  31.    }  32.  33.    //创建Socket,使用TCP协议  34.    sClient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);  35.    if (sC

8、lient == INVALID_SOCKET)  36.    {  37.        WSACleanup();  38.        printf("socket() failed!");  39.        //return 0;  40.    }  41.  42.    //构建服务器地址信息  43.    saServer.sin_family = AF_INET; //地址家族  44.    saServer.sin_port = htons(SERVER_PORT); //注意转化为网络节序  1.    saServer.

9、sin_addr.S_un.S_addr = inet_addr("127.0.0.1");  2.  3.    //连接服务器  4.    ret = connect(sClient, (struct sockaddr *)&saServer, sizeof(saServer));  5.    if (ret == SOCKET_ERROR)  6.    {  7.        printf("connect() failed!");  8.        closesocket(sClient); //关闭套接字  9.        WSAC

10、leanup();  1

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

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

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