精华内容
下载资源
问答
  • C++ Socket编程步骤

    2019-03-25 11:47:28
    C++ Socket编程步骤 sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),...1:加载套接字库,创建套接字(WSAStartup()/socket()); 2:绑定套接字到一个IP地址和一个端口上(bind()); 3:将套接字设置...

    C++ Socket编程步骤

    sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字。

    服务器端编程的步骤:

    1:加载套接字库,创建套接字(WSAStartup()/socket());

    2:绑定套接字到一个IP地址和一个端口上(bind());

    3:将套接字设置为监听模式等待连接请求(listen());

    4:请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept());

    5:用返回的套接字和客户端进行通信(send()/recv());

    6:返回,等待另一连接请求;

    7:关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())。

    客户端编程的步骤:

    1:加载套接字库,创建套接字(WSAStartup()/socket());

    2:向服务器发出连接请求(connect());

    3:和服务器端进行通信(send()/recv());

    4:关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())。

    第一式: 加载/释放Winsock库:

    1.加载方法:

    WSADATA wsa;
    /*初始化socket资源*/
    if (WSAStartup(MAKEWORD(1,1),&wsa) != 0)
    {
        return;   //代表失败
    }
    

    2.释放方法:

    WSACleanup();
    

    第二式: 构造SOCKET:

    1.服务端:构造监听SOCKET,流式SOCKET.

       SOCKET Listen_Sock = socket(AF_INET, SOCK_STREAM, 0)
    

    2.客户端:构造通讯SOCKET,流式SOCKET.

    SOCKET Client_Sock = socket(AF_INET, SOCK_STREAM, 0)
    

    第三式:配置监听地址和端口:

    1.服务端: SOCKADDR_IN serverAddr

    ZeroMemory((char *)&serverAddr,sizeof(serverAddr));
       serverAddr.sin_family = AF_INET;
       serverAddr.sin_port = htons(1234);           /*本地监听端口:1234*/
       serverAddr.sin_addr.s_addr = htonl(INADDR_ANY); /*有IP*/
    

    第四式: 绑定SOCKET:

    1.服务端:绑定监听SOCKET.

     bind(Listen_Sock,(struct sockaddr *)&serverAddr,sizeof(serverAddr))
    

    第五式: 服务端/客户端连接:

    1.服务端:等待客户端接入.

    SOCKET Command_Sock = accept(Listen_Sock, ...)
    

    2.客户端:请求与服务端连接.

    int ret = connect(Client_Sock, ...)
    

    第六式: 收/发数据:

    1.服务端:等待客户端接入.char buf[1024].
    接收数据:recv(Command_Sock,buf, …)

    发送数据:send(Command_Sock,buf, …)

    2.客户端:请求与服务端连接.char buf[1024].
    发送数据:send(Client_Sock,buf, …)

    接收数据:recv(Client_Sock,buf, …)

    第七式: 关闭SOCKET:

    1.服务端:关闭SOCKET.

    closesocket(Listen_Sock)
    closesocket(Command_Sock)
    

    2.客户端:关闭SOCKET.
    closesocket(Client_Sock)

    #include <stdio.h>
    #include <Winsock2.h>
    void main()
    {
        WORD wVersionRequested;
        WSADATA wsaData;
        int err;
    
        wVersionRequested = MAKEWORD(1, 1);
    
        err = WSAStartup(wVersionRequested, &wsaData);
        if (err != 0)
        {
            return;
        }
    
        if (LOBYTE(wsaData.wVersion) != 1 ||HIBYTE(wsaData.wVersion) != 1)
        {
            WSACleanup();
            return;
        }
        SOCKET sockSrv = socket(AF_INET, SOCK_STREAM, 0);
    
        SOCKADDR_IN addrSrv;
        addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
        addrSrv.sin_family = AF_INET;
        addrSrv.sin_port = htons(6000);
    
        bind(sockSrv, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));
    
        listen(sockSrv, 5);
    
        SOCKADDR_IN addrClient;
        int len = sizeof(SOCKADDR);
        while (1)
        {
            SOCKET sockConn = accept(sockSrv, (SOCKADDR*)&addrClient, &len);
            char sendBuf[50];
            sprintf(sendBuf, "Welcome %s to here!", inet_ntoa(addrClient.sin_addr));
            send(sockConn, sendBuf, strlen(sendBuf) + 1, 0);
            char recvBuf[50];
            recv(sockConn, recvBuf, 50, 0);
            printf("%s\n", recvBuf);
            closesocket(sockConn);
        }
    }
    
    展开全文
  • socket 编程步骤

    万次阅读 2012-02-09 20:50:36
    sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字...1:加载套接字库,创建套接字(WSAStartup()/socket()); 2:绑定套接字到一个IP地址和一个端口上(bind()); 3:将套接字设置为监听模式

    sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字。

    服务器端编程的步骤:

    1:加载套接字库,创建套接字(WSAStartup()/socket());

    2:绑定套接字到一个IP地址和一个端口上(bind());

    3:将套接字设置为监听模式等待连接请求(listen());

    4:请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept());

    5:用返回的套接字和客户端进行通信(send()/recv());

    6:返回,等待另一连接请求;

    7:关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())。

    客户端编程的步骤:

    1:加载套接字库,创建套接字(WSAStartup()/socket());

    2:向服务器发出连接请求(connect());

    3:和服务器端进行通信(send()/recv());

    4:关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())。

    第一式: 加载/释放Winsock库:

    1.加载方法:

    WSADATA wsa;
    /*初始化socket资源*/
    if (WSAStartup(MAKEWORD(1,1),&wsa) != 0)
    {
        return;   //代表失败
    }

    2.释放方法:

    WSACleanup();

    第二式: 构造SOCKET:

    1.服务端:构造监听SOCKET,流式SOCKET.
       SOCKET Listen_Sock = socket(AF_INET, SOCK_STREAM, 0)

    2.客户端:构造通讯SOCKET,流式SOCKET.
    SOCKET Client_Sock = socket(AF_INET, SOCK_STREAM, 0)

    第三式:配置监听地址和端口:

    1.服务端: SOCKADDR_IN serverAddr
    ZeroMemory((char *)&serverAddr,sizeof(serverAddr));
       serverAddr.sin_family = AF_INET;
       serverAddr.sin_port = htons(1234);           /*本地监听端口:1234*/
       serverAddr.sin_addr.s_addr = htonl(INADDR_ANY); /*有IP*/

    第四式:   绑定SOCKET:

    1.服务端:绑定监听SOCKET.
      bind(Listen_Sock,(struct sockaddr *)&serverAddr,sizeof(serverAddr))

    第五式: 服务端/客户端连接:

    1.服务端:等待客户端接入.
       SOCKET Command_Sock = accept(Listen_Sock, ...)

    2.客户端:请求与服务端连接.
    int ret = connect(Client_Sock, ...)

    第六式: 收/发数据:

    1.服务端:等待客户端接入.char buf[1024].
        接收数据:recv(Command_Sock,buf, ...)

        发送数据:send(Command_Sock,buf, ...)

    2.客户端:请求与服务端连接.char buf[1024].
        发送数据:send(Client_Sock,buf, ...)

        接收数据:recv(Client_Sock,buf, ...)

    第七式: 关闭SOCKET:

    1.服务端:关闭SOCKET.
       closesocket(Listen_Sock)
    closesocket(Command_Sock)

    2.客户端:关闭SOCKET.
    closesocket(Client_Sock)

    ?
    #include <stdio.h>
    #include <Winsock2.h>
    void main()
    {
      WORD wVersionRequested;
      WSADATA wsaData;
      int err;
       
      wVersionRequested = MAKEWORD( 1, 1 );
       
      err = WSAStartup( wVersionRequested, &wsaData );
      if ( err != 0 ) {
       return ;
      }
       
      if ( LOBYTE( wsaData.wVersion ) != 1 ||
             HIBYTE( wsaData.wVersion ) != 1 ) {
       WSACleanup( );
       return ;
      }
      SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);
      
      SOCKADDR_IN addrSrv;
      addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
      addrSrv.sin_family=AF_INET;
      addrSrv.sin_port=htons(6000);
       
      bind(sockSrv,(SOCKADDR*)&addrSrv, sizeof (SOCKADDR));
      
      listen(sockSrv,5);
      
      SOCKADDR_IN addrClient;
      int len= sizeof (SOCKADDR);
      while (1)
      {
       SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);
       char sendBuf[50];
       sprintf (sendBuf, "Welcome %s to here!" ,inet_ntoa(addrClient.sin_addr));
       send(sockConn,sendBuf, strlen (sendBuf)+1,0);
       char recvBuf[50];
       recv(sockConn,recvBuf,50,0);
       printf ( "%s\n" ,recvBuf);
       closesocket(sockConn);
      }
      
    }
      

         
    #include < stdio.h > #include < Winsock2.h > void main() { WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 1 , 1 ); err = WSAStartup( wVersionRequested, & wsaData ); if ( err != 0 ) { return ; } if ( LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion ) != 1 ) { WSACleanup( ); return ; } SOCKET sockClient = socket(AF_INET,SOCK_STREAM, 0 ); SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un.S_addr = inet_addr( " 127.0.0.1 " ); addrSrv.sin_family = AF_INET; addrSrv.sin_port = htons( 6000 ); connect(sockClient,(SOCKADDR * ) & addrSrv, sizeof (SOCKADDR)); send(sockClient, " hello " ,strlen( " hello " ) + 1 , 0 ); char recvBuf[ 50 ]; recv(sockClient,recvBuf, 50 , 0 ); printf( " %s\n " ,recvBuf); closesocket(sockClient); WSACleanup(); }
    展开全文
  • socket编程步骤

    千次阅读 2013-06-19 21:40:30
    sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_...基于TCP的socket编程是采用的流式套接字。 服务器端编程的步骤: 1:加载套接字库,创建套接字(W

    参考文章:http://www.cnblogs.com/b2tang/archive/2009/05/28/1491471.html

    sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字。

    服务器端编程的步骤:

    1:加载套接字库,创建套接字(WSAStartup()/socket());

    2:绑定套接字到一个IP地址和一个端口上(bind());

    3:将套接字设置为监听模式等待连接请求(listen());

    4:请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept());

    5:用返回的套接字和客户端进行通信(send()/recv());

    6:返回,等待另一连接请求;

    7:关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())。

    客户端编程的步骤:

    1:加载套接字库,创建套接字(WSAStartup()/socket());

    2:向服务器发出连接请求(connect());

    3:和服务器端进行通信(send()/recv());

    4:关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())。

    第一式: 加载/释放Winsock库:

    1.加载方法:

    WSADATA wsa;
    /*初始化socket资源*/
    if (WSAStartup(MAKEWORD(1,1),&wsa) != 0)
    {
        return;   //代表失败
    }

    2.释放方法:

    WSACleanup();

    第二式: 构造SOCKET:

    1.服务端:构造监听SOCKET,流式SOCKET.
       SOCKET Listen_Sock = socket(AF_INET, SOCK_STREAM, 0)

    2.客户端:构造通讯SOCKET,流式SOCKET.
    SOCKET Client_Sock = socket(AF_INET, SOCK_STREAM, 0)

    第三式:配置监听地址和端口:

    1.服务端: SOCKADDR_IN serverAddr
    ZeroMemory((char *)&serverAddr,sizeof(serverAddr));
       serverAddr.sin_family = AF_INET;
       serverAddr.sin_port = htons(1234);           /*本地监听端口:1234*/
       serverAddr.sin_addr.s_addr = htonl(INADDR_ANY); /*有IP*/

    第四式:   绑定SOCKET:

    1.服务端:绑定监听SOCKET.
      bind(Listen_Sock,(struct sockaddr *)&serverAddr,sizeof(serverAddr))

    第五式: 服务端/客户端连接:

    1.服务端:等待客户端接入.
       SOCKET Command_Sock = accept(Listen_Sock, ...)

    2.客户端:请求与服务端连接.
    int ret = connect(Client_Sock, ...)

    第六式: 收/发数据:

    1.服务端:等待客户端接入.char buf[1024].
        接收数据:recv(Command_Sock,buf, ...)

        发送数据:send(Command_Sock,buf, ...)

    2.客户端:请求与服务端连接.char buf[1024].
        发送数据:send(Client_Sock,buf, ...)

        接收数据:recv(Client_Sock,buf, ...)

    第七式: 关闭SOCKET:

    1.服务端:关闭SOCKET.
       closesocket(Listen_Sock)
    closesocket(Command_Sock)

    2.客户端:关闭SOCKET.
    closesocket(Client_Sock)

    展开全文
  • Socket的基本使用步骤

    2017-05-04 15:45:59
    Socket的基本使用步骤 一.使用Socket,首先需要导入这几个系统头文件  #import   #import   #import  二.然后就是进行Socket代码的编写,先来看看实现一个简单的Socket通信需要哪些步骤: ...

    Socket的基本使用步骤


    一.使用Socket,首先需要导入这几个系统头文件

      #import <sys/socket.h>

      #import <netinet/in.h>

      #import <arpa/inet.h>

    二.然后就是进行Socket代码的编写,先来看看实现一个简单的Socket通信需要哪些步骤:

      >1.创建客户端Socket;

      >2.创建服务器Socket;

      >3.连接两个Socket;

      >4.客户端Socket发送信息给服务器(发送请求的过程);

      >5.服务器响应客户端的请求,返回给客户端数据(服务器响应的过程);

      >6.客户端接受服务器返回的数据;

      >7.关闭Socket;

    三.下面要进行详细的Socket代码实现了.

     

      1.创建客户端Socket

      //参数1:协议域遵守的IP协议类型! AF_INET:IPv4  AF_INET6:IPv6

      //参数2:端口类型: TCP:SOCK_STREAM   UDP:SOCK_DGRAM

      // 参数3: 选择的协议类型一般传会根据第二个参数自动选择协议类型!

      // 返回值如果返回值>0 ,标示 Socket 创建成功!

      int SocketNumber = socket(AF_INET,SOCK_STRESM,0);

      

      

      2. 创建服务器端 Socket

          struct sockaddr_in serverAddress;

         // 主机 /端口

          // 设置 服务器Socket 遵循的 IP 协议类型为 IPv4

          serverAddress.sin_family = AF_INET;

        

        // 服务器 Socket  IP 地址

        serverAddress.sin_addr.s_addr = inet_addr("127.0.0.1");

        

        // 设置服务器Socket 的端口号;

        // 端口号的最大值 65535;  09~1024 是系统默认占用的端口号!不要设置!

        // 如果需要手动设置端口号一般设置 1024 ~ 65535 之间的值!

        serverAddress.sin_port = htons(3456);

        

        

        3. 连接两个 Socket

        // 参数1: 客户端的 Socket

        // 参数2: 服务器端 Socket/结构体 (const struct sockaddr *)&serverAddress 强制类型转换

        // 参数3: 第二个参数的长度! sizeof(serverAddress) 计算长度计算的是内存地址的长度!

        // 返回值如果返回值为代表连接成功!

        // 返回值 != 0 ,代表连接失败!

        // 如果想要连接成功,必须实时监测服务器端的端口!

        // 监测服务器端口: nc -lk 12345

        int conn = connect(SocketNumber, (const struct sockaddr *)&serverAddress, sizeof(serverAddress));

     

            4. 发送信息给服务器

        // 参数1: 客户端 Socket

        // 参数2: void * 传递给服务器的数据!  msg.UTF8String 就是直接将 OC 数据转换成 C 语言的数据类型!

        // 参数3: size_t 锁传递给服务器数据的长度!

        // 参数4: 等待服务器响应数据!

        

        NSString *msg = @"hello socket";

        

        send(SocketNumber, msg.UTF8Stringstrlen(msg.UTF8String), 0);

        

         5.接受服务器返回的数据!

        // 参数1:客户端 Socket :服务器确定返回给哪一个客户端数据.

        // 参数2:void * :接收服务器返回数据的地址(区域)

        // 参数3:size_t :接受地址的长度

        // 参数4:等待服务器返回数据!

        // 返回值就是服务器返回的数据长度!

        

        ssize_t buffer[1024];

        

        ssize_t length = recv(SocketNumber, buffer,sizeof(buffer), 0);

        

        // 获得服务器返回的数据( buffer 中取出需要的数据)

        

        // 根据二进制数据,拼接字符串

        // Bytes: 网络中传递的数据流(比特流/字节)

        NSString *returnMsg = [[NSString allocinitWithBytes:buffer length:length encoding:NSUTF8StringEncoding];

        

        6.一个请求结束之后(接收到响应之后),需要手动关闭Socket!

        close(SocketNumber);

    展开全文
  • OkHttp3的最底层是Socket,而不是URLConnection,它通过Platform的Class.forName()反射获得当前Runtime使用的socket库,调用栈如下 okhttp//实现HTTP协议 ==>framwork//JRE,实现JDK中Socket封装  ==>jvm//JDK的...
  • 该实例讲述了socket创建,绑定,连接,发送,关闭,整个socket通信的基本步骤
  • 简单socket通信步骤

    千次阅读 2017-09-19 13:07:53
    1:加载套接字库,创建套接字(WSAStartup()/socket()); 2:绑定套接字到一个IP地址和一个端口上(bind()); 3:将套接字设置为监听模式等待连接请求(listen()); 4:请求到来后,接受连接请求,返回一个新的对应...
  • C++socket编程步骤

    万次阅读 2013-01-25 15:35:31
    sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字...1:加载套接字库,创建套接字(WSAStartup()/socket()); 2:绑定套接字到一个IP地址和一个端口上(bind()); 3:将套接字设置为监听模式
  • 1.创建socket 2.建立连接 3.发送数据 4.接受数据 5.关闭socket import socket # create socket client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # connect client_socket.connect(("192.168.1....
  • 基于Socket网络编程基本步骤

    千次阅读 2017-11-18 14:28:31
    (1)创建Socket。 (2)打开连接到Socket的输入/输出流。 (3)按照一定的协议对Socket进行读/写操作(这步很关键)。 (4)关闭打开的输入/输出流。 (5)关闭Socket。
  • vc下socket编程步骤

    2011-11-17 13:32:55
    vc下网络编程需注意:  1. 加上链接文件ws2_32.lib  2....   编写步骤如下: ...sockets(套接字)编程有三种:流式套接字(SOCK_...基于TCP的socket编程是采用的流式套接字。   服务器端编程的步骤:   1:加载
  • 对于普通Web应用后端的开发,常常会借助一些成熟的框架,例如SpringMVC,游戏的服务器区别于此的特点是:游戏服务器需要有比较大的吞吐量,而且通常为Socket长连接,所以需要一个分布式架构。当前比较流行的网络通信...
  • 1.创建ServerSocket和Socket 2.打开连接到Socket的输入/输出流 3.按照协议对Socket进行读/写操作 4.关闭输入输出流、关闭Socket
  • socket 编程基本步骤

    千次阅读 2013-09-03 10:26:04
    sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字...1:加载套接字库,创建套接字(WSAStartup()/socket()); 2:绑定套接字到一个IP地址和一个端口上(bind()); 3:将套接字设置为监听
  • SOCKET通信的基本步骤

    千次阅读 2014-07-22 22:40:37
    SOCKET通信的基本步骤  1)建立一个服务器ServerSocket,并同时定义好ServerSocket的监听端口;  2)ServerSocket 调用accept()方法,使之处于阻塞。  3)创建一个客户机Socket,并设置好服务器的IP和端口。 ...
  • TCP/UDP Socket编程步骤

    千次阅读 2014-12-24 13:42:47
    TCP/UDP Socket编程步骤 2010-11-01 15:04:33 分类: C/C++ sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW); WINDOWS环境下TCP/UDP...
  • VC中的Socket编程步骤

    2011-02-14 17:45:00
    服务器端编程的步骤:1:加载套接字库,创建套接字(WSAStartup()/socket());2:绑定套接字到一个IP地址和一个端口上(bind());3:将套接字设置为监听模式等待连接请求(listen());4:请求到来后,接
  • C语言socket编程简单步骤

    千次阅读 2013-08-05 20:36:55
    *函数功能:创建套接字的函数 *输入参数:无 *输出参数:无 *返回值:套接字的ID */ int creat_socket() { int ret; ret=socket(AF_INET,SOCK_STREAM,0); if(ret==-1) { perror("socket error");
  •  服务器程序要先于客户机程序启动,每个步骤中调用的Socket函数如下: (1)调用WSAStartup()函数加载Windows Sockets动态库,然后调用socket()函数创建一个流式套接字,返回套接字号s。 (2)调用bind()函数...
  • 主要介绍了Android使用socket创建简单TCP连接的方法,结合实例形式详细分析了Android使用socket创建TCP连接的具体步骤与实现技巧,需要的朋友可以参考下
  • Socket编程步骤(笔试题)

    千次阅读 2018-06-22 10:33:12
    问:socket编程执行send之后系统进行哪种操作?答:如果采用系统是采用阻塞模式,则系统执行send之后会等待对方返回结果才执行下一步。如果是非阻塞模式则将当前线程挂起,执行系统下一个操作。问:什么是粘包?答:...
  • 面向连接的socket通信就像与对方打电话,首先需要通过电话建立一个连接,连接...3:创建socket并绑定地址 4:开始监听 5:接收客户端连接请求 6:进行数据传输 客户端 1:获取或注册服务 2:创建socket 3:发送连接请求
  • vc中socket编程步骤及实例

    千次阅读 2011-01-06 10:40:00
    sockets(套接字)编程有三种,流式套接字... <br />服务器端编程的步骤: <br />1:加载套接字库,创建套接字(WSAStartup()/socket()); <br />2:绑定套接字到一个IP地址和一个端口上(bind());

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 118,084
精华内容 47,233
关键字:

创建socket步骤