网络基础—网络基本认识及相关接口

FTP协议

传送文件:
1.文件名
2.大小
3.内容

网络的分层结构:
1.TCP/IP因其低成本、不同平台间通信的可靠性,已成为局
域网和internet的标准协议。
这里写图片描述
1.TCP/IP分为四层,从上网下依次是:
应用层、传输层、网络层、网络接口层。
2.应用层:
使用应用层协议,将封装好的数据提交给传输层、或者从传输层接收数据并处理。
3.传输层:
实现应用程序间的通信(端到端的通信)。
4.网络层: 主机间通信路径的选择(路由)。
5.网络接口层: 将二进制流转换为数据帧(网络传输的基本
单元),进行数据帧的发送和接收。

数据从一个IP地址发送到另一个IP,数据会经过应用层,传输层,网络层,
链路层的层层封装,到达指定IP后有经过几个进程层层解析,收到数据消息

socket网络编程

int main(void)
{
    union IP{
        int a;
        char b[4];

    };
    union IP ip;
    ip.b[0] = 192;
    ip.b[1] = 168;
    ip.b[2] = 3;
    ip.b[3] = 130;

    printf("%X.%X.%X.%X/n",ip.b[0],ip.b[1],ip.b[2],ip.b[3]);
    printf("%X/n",ip.a)

}
int socket(int domain,
            AF_INET IPv4,
            AF_INET6 IPv6,
            AF_UNIX 本地套接字
        int type,  //套接字类型
                            流式套接字    sock_stream
                            数据包套接字  sock_dgram
                            原始套接字    sock_ram
            int protocol); //协议,一般写0

返回值:套接字描述符,简称为套接字

//绑定,绑定成功返回0,绑定失败返回-1.
int bind(int sockfd,  
              const struct sockaddr *addr,
              socklen_t addrlen);

struct sockaddr
          {
               sa_family_t sa_family;
               char        sa_data[14];
          }

struct sockaddr_in {
               sa_family_t    sin_family; /* address family: AF_INET */
               in_port_t      sin_port;   /* port in network byte order */
               struct in_addr sin_addr;   /* internet address */
           };
           /* Internet address. */
           struct in_addr {
               uint32_t       s_addr;     /* address in network byte order */
           };

//将套接字变成被动套接字
//backlog 等待队列的最大个数,
int listen(int sockfd, int backlog);

//等待客户端的连接
int accept(int sockfd,   //socket函数返回的套接字
                struct sockaddr *addr,  // 
                socklen_t *addrlen);      //
//返回值:新的套接字,用于和客户端进行通知。

//读取客户端信息
 read:
ssize_t read(int fd, void *buf, size_t count);

write:
ssize_t write(int fd, const void *buf, size_t count);


int close(int fd)

connect(int sfd,struct)



c/s:复杂界面,缓存
        自己开发,难写。不安全

b/s:安全 不用自己开发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值