Linuxc-socket网络通信

本文介绍了如何在Linux环境下使用C语言通过socket接口实现TCP和UDP协议的网络通信。对于TCP协议,详细阐述了服务端创建socket、绑定地址、设置监听、接收客户端连接及响应请求的过程;而对于UDP协议,则讲解了接收者和发送者的socket创建、地址准备、数据发送与接收以及关闭socket的步骤。
摘要由CSDN通过智能技术生成

网络通信:
底层遵循TCP/IP协议,在系统中以socket接口方式呈现

基于TCP协议的网络通信模型
服务端 客户端
创建socket对象 创建socket对象
准备通信地址(本机IP)+端口号 准备通信地址
绑定socket和通信地址 …
设置监听和排队的对象 …
等待客户端连接 连接服务端
重新分配新的socket对象+进程或者线程 …
接收请求 发送请求
响应请求 接收响应
关闭socket 关闭socket

使用到的函数

#include <sys/types.h>          /* See NOTES */
#include <sys/socket.h>
int socket(int domain, int type, int protocol);
功能:创建socket对象
domain:
    AF_INET             基于IPv4地址通信
type:
    SOCK_STREAM         数据流协议
protocol:
返回值:成功返回socket描述符,失败返回-1

网络通信地址类型:
    struct sockaddr_in 
    {
        __kernel_sa_family_t  sin_family; //创建socket时domain写什么就填什么
        __be16        sin_port;            //端口号(大端数据)
        struct in_addr    sin_addr;         // IP地址(大端数据)  
    };

    struct in_addr {
        __be32  s_addr;
    };

大小端数据转换函数:
    #include <arpa/inet.h>
    uint
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值