admin管理员组

文章数量:1571383

首先要说一下socket套接字的基本定义以及概念,这里先列举微软计算机词典对于套接字的描述

Socket is an identifier for a particular service on a particular node on a network. The socket consists of a node address and a port number, which identifies the service.
套接字是一个位于网络中特定节点的服务所具有的标识符。套接字包含一个节点地址和一个端口号,用来标识这一服务。

其实简单点说:套接字就是一个计算机IP地址与计算机端口号的组合,其中IP地址用于区分主机(每一个计算机都有一个独立的IP地址),而端口号主要用来区分是什么程序调用(每个程序在进行通信时都需要占用一个或者多个不冲突的端口)

而TCP套接字可以形象的比喻为电话机,这里以接电话为例子讲解套接字的创建过程(打电话的过程与接电话的过程有着差异)

第一步是调用socket函数(安装电话机)|(要想打电话首先要进行电话机的安装)

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

第二步是调用Bind函数进行标志的分配(在打电话时我们需要知道电话号码)

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

第三步是调用listen函数进行电话线的连接(打电话是我们的电话之间是通过电话线进行连接的)

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

其中如果是请求连接端(打电话)时,我们采用的是connect函数:

#include <sys/soocket.h>
int connect(int sockfd,struct sockaddr *serv_addr,socklen_t addrlen)

最后一步就是调用accept函数进行接收(拿起电话接听)

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

网络编程中接收连接请求的套接字创建(接电话)可以概括为如下四步:

Step1:调用socket函数创建套接字

Step2:调用bind函数分配IP地址和端口号

Step3:调用listen函数转为可以接收请求状态

Step4:调用accept函数受理连接请求

本文标签: 具体步骤概念TCPSocket