Linux下的C++ Socket网络编程

Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。即Socket提供了操作上述特殊文件的接口,使用这些接口可以实现网络编程。

Linux下的C++ Socket网络编程

Socket通信流程图

TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,在正式通信之前必须建立起连接。UDP(User Data Protocol,用户数据报协议)是一个非连接的协议。因此TCP的服务器模式比UDP的服务器模式多了listen,accept函数。TCP客户端比UDP客户端多了connect函数。这里着重介绍TCP下socket简单编程。
一、TCP使用Socket创建客户端(Client)

(1)创建一个socket,用函数socket();

导入需要的头文件:

#include <sys/types.h>
#include <sys/socket.h>

声明

int socket(int domain, int type, int protocol);

参数说明:

  1)domain

Name Purpose
AF_UNIX, AF_LOCAL  Local communication
AF_INET IPv4 Internet protocols
AF_INET6 IPv6 Internet protocols
AF_IPX  IPX - Novell protocols
AF_NETLINK Kernel user interface device
AF_X25 ITU-T X.25 / ISO-8208 protocol
AF_AX25  Amateur radio AX.25 protocol
AF_ATMPVC Access to raw ATM PVCs
AF_APPLETALK AppleTalk
AF_PACKET Low level packet interface
AF_ALG Interface to kernel crypto API

 

(2)连接服务器,用函数connect();

(3)收发数据,用函数send()和recv(),或者read()和write();

(4)关闭网络连接。

二、TCP使用Socket创建服务端(Server)

(1)创建一个socket,用函数socket();

(2)绑定IP地址、端口等信息到socket上,用函数bind();

(3)开启监听,用函数listen();

(4)接收客户端上来的连接,用函数accept();

(5)收发数据,用函数send()和recv(),或者read()和write();

(6)关闭网络连接;

(7)关闭监听。

上一篇:ElementUI v-infinite-scroll


下一篇:请务必收下这10+个加载特效,保证让你的项目大放异彩⭐