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

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

  • 1.网络编程与套接字
  • 2.流程
    • (1)服务端--接电话套接字
      • socket函数
      • bind函数
      • listen函数
      • accept函数
      • 整理
    • (2)客户端--打电话套接字
      • connect函数
  • 2.服务端与客户端的调用顺序

1.网络编程与套接字

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

2.流程

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

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

socket函数

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

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

bind函数

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

#include
int bind(int sockfd,struct sockaddr,socklen_t addrlen);
  • 成功返回0,失败返回-1

listen函数

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

#include
int listen(int sockfd,int backlog);
  • 成功返回0,失败返回-1

accept函数

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

#include
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
int connect(int sockfd,struct sockaddr* serv_addr,socklen_t addrlen);
  • 成功返回0,失败返回-1

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

服务端
TCP/IP网络编程笔记Chapter I -2理解网络编程与套接字_第1张图片
客户端
TCP/IP网络编程笔记Chapter I -2理解网络编程与套接字_第2张图片

你可能感兴趣的:(TCP/IP网络编程,linux,socket,网络)