TCP/IP网络编程笔记Chapter I -2理解网络编程与套接字

1.网络编程与套接字

网络编程就是编写程序使两台联网的计算机相互交换数据,套接字是网络数据传输用的软件设备,是用来连接该网络的工具。

2.流程

套接字大致分为两种,我们把TCP套接字比做电话机,电话机可以同时拨打和接听,我们先讨论接听的套接字创建部分。

(1)服务端–接电话套接字

socket函数

首先我们需要一部电话机,下面的函数相当于电话机的套接字

#include<sys/socket.h>
int socket(int domin,int type,int protocol);
  • 成功返回文件描述符,失败返回-1

bind函数

准备好电话机后,还需要分配电话号码,才能与别人联系上

#include<sys/socket.h>
int bind(int sockfd,struct sockaddr,socklen_t addrlen);
  • 成功返回0,失败返回-1

listen函数

完成接电话的准备工作后,我们需要连接电话线,使电话机转为可接受状态,listen函数把套接字转化为可接收转态

#include<sys/socket.h>
int listen(int sockfd,int backlog);
  • 成功返回0,失败返回-1

accept函数

连接好电话线后,如果有人拨打电话需要拿起话筒才能接听。拿起话筒相当于接受请求用accept函数受理

#include<sys/socket.h>
int accept(int sockfd,struct sockaddr *addr,socklen_t *addrlen);
  • 成功返回文件描述符,失败返回-1

整理

  • 1.调用socket函数创建套接字
  • 2.调用bind函数分配IP地址和端口号
  • 3.调用listen函数转为可接受请求状态
  • 4.调用accept函数受理连接请求

(2)客户端–打电话套接字

客户端套接字创建过程比服务端简单,只有三个部分,其一是调用socket函数创建套接字,同上;其二是调用connect函数;其三是与服务端共同运行以收发数据。

connect函数

connect函数充当打电话(请求连接)的函数

#include<sys/socket.h>
int connect(int sockfd,struct sockaddr* serv_addr,socklen_t addrlen);
  • 成功返回0,失败返回-1

2.服务端与客户端的调用顺序

服务端
在这里插入图片描述
客户端
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值