zoukankan      html  css  js  c++  java
  • 【网络编程】TCPIP_1_快速入门


    前言

    说明:

    • demo 基于 Linux。

    1. 快速入门

    以下步骤简略了很多细节,但是通过下面的几个函数就能构建出简单的TCP/IP网络编程demo了。

    原文:李柱明博客

    1.1 服务端编程简要步骤

    网络编程中和接受连接请求的套接字创建过程可整理如下:

    1. 第一步:调用 socket 函数创建套接字。
    2. 第二步:调用 bind 函数分配IP地址和端口号。
    3. 第三步:调用 listen 函数转换为可接受请求状态。
    4. 第四步:调用 accept 函数受理套接字请求。
    5. 第五步:调用 read、write 读写函数进行数据交互。
    6. 第六步:调用 close 函数关闭套接字。

    1.2 客户端编程简要步骤

    客户端请求连接简要步骤:

    1. 第一步:调用 socket 函数创建套接字。
    2. 第二步:调用 connect 函数向服务端发送连接请求。
    3. 第三步:调用 read、write 读写函数进行数据交互。
    4. 第四步:调用 close 函数关闭套接字。

    1.3 参考

    如 TCP 客户端和服务端:

    部分参考函数及其头文件(基于linux):

    // 第一步:调用 socket 函数创建套接字。
    //成功时返回文件描述符,失败时返回-1
    #include <sys/socket.h>
    int socket(int domain, int type, int protocol);
    
    // 第二步:调用 bind 函数分配IP地址和端口号。
    //成功时返回0,失败时返回-1
    #include <sys/socket.h>
    int bind(int sockfd, struct sockaddr *myaddr, socklen_t addrlen);
    
    /* 补充 client 部分 */
    //成功时返回0,失败时返回-1
    int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
    
    // 第三步:调用 listen 函数转换为可接受请求状态。
    //成功时返回0,失败时返回-1
    #include <sys/socket.h>
    int listen(int sockfd, int backlog);
    
    // 第四步:调用 accept 函数受理套接字请求。
    //成功时返回文件描述符,失败时返回-1
    #include <sys/socket.h>
    int accept(int sockfd,struct sockaddr *addr,socklen_t *addrlen);
    
    // 第五步:调用读写函数进行数据交互。
    /*	成功时返回接收的字节数(但遇到文件结尾则返回 0),失败时返回 -1
    	fd : 显示数据接收对象的文件描述符
    	buf : 要保存接收的数据的缓冲地址值。
    	nbytes : 要接收数据的最大字节数
    */
    #include <unistd.h>
    ssize_t read(int fd, void *buf, size_t nbytes);
    
    /*	成功时返回写入的字节数 ,失败时返回 -1
    	fd : 显示数据传输对象的文件描述符
    	buf : 保存要传输数据的缓冲值地址
    	nbytes : 要传输数据的字节数
    */
    #include <unistd.h>
    ssize_t write(int fd, const void *buf, size_t nbytes);
    
    // 第六步:调用 close 函数关闭套接字。
    /* 	成功时返回 0 ,失败时返回 -1
    	fd : 需要关闭的文件或套接字的文件描述符
    */
    #include <unistd.h>
    int close(int fd);
    
    

    参考:

  • 相关阅读:
    2020系统综合实践 第3次实践作业
    2020系统综合实践 第2次实践作业
    2020系统综合实践 第1次实践作业
    WireShark组 2019 SDN大作业
    2019 SDN阅读作业
    第07组 Beta版本演示
    OO第四单元总结
    OO第三单元总结
    OO第二单元总结
    OO第一单元总结
  • 原文地址:https://www.cnblogs.com/lizhuming/p/15149496.html
Copyright © 2011-2022 走看看