码迷,mamicode.com
首页 > 编程语言 > 详细

WinsockPragramming(2) Client(C++版)

时间:2015-05-31 15:29:52      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:client   c++   winsock   

创建客户端与创建服务器流程类似,只是有稍许不同,我在这里不详细叙述。
创建客户端流程
1、初始化套接字库

初始化套接字库代码:

WSAData data;//定义WSAData变量
WOED wVersionRequested=MAKEWORD(2,0);//定义套接字库版本号
::WSAStartup(wVersionRequested,&data);//初始化套接字库

2、创建套接字句柄

创建套接字句柄代码:

SOCKET s;//定义套接字句柄
s=::socket(AF_INET,SOCK_STREAM,0);//创建并返回套接字句柄

3、地址结构设置及字节顺序转换

地址结构设置及字节顺序转换代码:

sockaddr_in addr;//定义套接字地址结构变量
in_addr in_add;//定义IP地址结构变量
addr.sin_fimily=AF_INET;//指定地址家族为TCP/IP
addr.sin_port=htons(80);//指定端口号
addr.sin_addr.S_un.S_addr=inet_addr(‘127.0.0.1‘);//将字符串IP转换为网络字节顺序排列的IP
char address[]=inet_ntoa(addr.sin_addr.S_un.S_addr)//将网络字节顺序排列的IP转换为字符串IP

4、发送连接请求

发送连接请求代码

::connect(s,(sockaddr*)&addr,sizeof(addr));

5、数据收发

数据收发代码:

::send(s1,sztext,sizeof(sztext),0);
::recv(s,sztext,sizeof(sztext),0);

6、关闭套接字

关闭套接字代码:

::closesocket(s);

7、释放套接字库

释放套接字库代码:

::WSACleanup();

完整源码:

/*Client.cpp*/

#include <winsock2.h>//包含头文件
#include <stdio.h>
#include <windows.h>
#pragma comment(lib,"WS2_32.lib")//显式连接套接字库

int main(){

    //初始化套接字库
    WSADATA data;//定义WSADATA结构体对象
    WORD w=MAKEWORD(2,0);//定义版本号
    ::WSAStartup(w,&data);//初始化套接字库

    char sztext[10]={0};

    //创建套接字句柄
    SOCKET s;//定义连接套接字和数据收发套接字句柄
    s=::socket(AF_INET,SOCK_STREAM,0);//创建TCP套接字

    //地址结构设置及字节转换
    sockaddr_in addr;//定义套接字地址结构
    addr.sin_family=AF_INET;//初始化地址结构
    addr.sin_port=htons(75);//设置端口号
    addr.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");

    printf("客户端已经启动\r\n");//输出提示信息

    //发送连接请求
    ::connect(s,(sockaddr*)&addr,sizeof(addr));

    //接收服务器的数据
    ::recv(s,sztext,sizeof(sztext),0);
    printf("%s\r\n",sztext);

    //关闭套接字句柄
    ::closesocket(s);

    //释放套接字库
    ::WSACleanup();

    if(getchar()){
        return 0;
    }else{
        ::Sleep(100);//应用休眠0.1秒
    }


}


WinsockPragramming(2) Client(C++版)

标签:client   c++   winsock   

原文地址:http://blog.csdn.net/qq_16912257/article/details/46288293

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!