zoukankan      html  css  js  c++  java
  • 建立简单的套接字

    最近发现学计算机的真的要好好做笔记啊。。。前两天有个学长的聊天工具我是知道没有初始化套接字,可是一时竟然忘记了加载版本库的那几行代码,真是汗。。。硬是回来看自己的程序才知道。。。

    今晚复习了一下套接字的建立

    有服务端和客服端两个部分

    服务端的步骤一般为

    1、初始化套接字版本

     1    //初始化版本
     2     WSADATA wsadata;
     3     WORD ver=MAKEWORD(2,2);
     4     int err;
     5     if((err=WSAStartup (ver,&wsadata))=!0)
     6     {
     7         return ;
     8     }
     9     if(LOBYTE(wsadata.wVersion)!=2||HIBYTE(wsadata.wVersion)!=2)
    10     {
    11         WSACleanup();
    12         return;
    13     }

    2、创建套接字

    3、绑定

    4、监听

    5、接收

    具体代码如下:

     1 #include<iostream>
     2 #include<afx.h>
     3 #include<winsock.h>
     4 int main()
     5 {
     6     //初始化版本
     7     WSADATA wsadata;
     8     WORD ver=MAKEWORD(2,2);
     9     int err;
    10     if((err=WSAStartup (ver,&wsadata))=!0)
    11     {
    12         return ;
    13     }
    14     if(LOBYTE(wsadata.wVersion)!=2||HIBYTE(wsadata.wVersion)!=2)
    15     {
    16         WSACleanup();
    17         return;
    18     }
    19 
    20     SOCKET sever;
    21     sever=socket(AF_INET,SOCK_STREAM,0);
    22     SOCKADDR_IN sever_in;
    23     sever_in.sin_family=AF_INET;
    24     sever_in.sin_port=htons(1024);
    25     sever_in.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
    26     bind(sever,(SOCKADDR*)&sever_in,sizeof(sever_in));
    27     listen(sever,2);
    28     
    29 
    30     SOCKET client;
    31 
    32 
    33     client=accept(sever,0,0);
    34     if(client==INVALID_SOCKET)
    35     {
    36         std::cout<<"连接失败!"<<std::endl;
    37     }
    38     
    39     else
    40         std::cout<<"连接成功!"<<std::endl;
    41     return 0;
    42 }

    客户端代码:

     1 #include<iostream>
     2 #include<afx.h>
     3 #include<winsock.h>
     4 int main()
     5 {
     6     WSADATA  wsdata;
     7     WORD ver=MAKEWORD(2,2);
     8     int err;
     9     if((err=WSAStartup (ver,&wsdata))=!0)
    10     {
    11         return 0;
    12     }
    13     if(LOBYTE(wsdata.wVersion)!=2||HIBYTE(wsdata.wVersion)!=2)
    14     {
    15         WSACleanup();
    16         return 0;
    17     }
    18     SOCKET client;
    19     client=socket(AF_INET,SOCK_STREAM ,0);
    20     SOCKADDR_IN client_in;
    21     client_in.sin_family=AF_INET;
    22     client_in.sin_port=htons(1024);
    23     client_in.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
    24     if(connect(client,(SOCKADDR*)&client_in,sizeof(client_in))==0)
    25     {
    26         std::cout<<"连接成功"<<std::endl;
    27     }
    28     return 0;
    29 }

    就可以连上了

  • 相关阅读:
    mysql批量导入删除
    sql查重去除id最小值
    Rest构建分布式 SpringCloud微服务架构项目
    Django模板语言及视图
    Django模板语言
    面向对象进阶
    初识面向对象
    os模块和sys模块
    random模
    时间模块
  • 原文地址:https://www.cnblogs.com/newworldcom/p/3484660.html
Copyright © 2011-2022 走看看