C语言Linux下面的Socekt编程

实现TCP服务程序

1.调用socket网络API,创建套接字文件
1.1:socket函数

#include<sys/types.h>
#include<sys/socket.h>
int socket(int domain,int type,int protocol);

1.2功能:创建一个套接字文件,然后以文件形式来操作通信,不过套接字文件没有文件名,Linux有7种文件。套接字文件就是其中一种。
socket翻译为中文就是“套接字”的意思,其实翻译为插座更合适些,因为socket本来就是插座的意思,使用socket创建一个通信的套接字文件,就好比插上了一个通信的插座,有了这个插座就可以和对方通信了。
1.3返回值
成功:返回套接字文件描述符。
失败:返回-1,errno被设置

1.4参数
domian
范围
作用:指定协议族
为什么要指定协议族?
因为你要使用的通信协议,TCP属于TCP/IP协议族,TCP/IP协议族,不过TCP/IP协议族有两个版本。分别IPV4和IPV6,我们使用的IPV4版本,因为IPV6还未普及。
IPV4:ip为32位
IPV6:ip为128位

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

domain可设置的常见宏值
可设置的有:AF_UNIX,AF_LOCAL,AF_INET,AF_INET6,AF_IPX,AF_NETLINK,AF_APPLETALK,AF_PACKET,AF_UNSPEC,有关每个宏的作用后面在解释,这里先介绍这些“宏名”。

AF是address family,表示地址家族的意思,由于每个网络协议的ip地址协议格式完全不同,因此在指定时需要做区分,所有这些AF_****宏就是用于说明使用的是什么协议的IP地址。

这些个宏定义在socket.h中

#define AF_UNSPEC 0
#define AF_UNIX 1
#define AF_LOCAL1
#define AF_INET 2
#define AF_AX25 3
发布了76 篇原创文章 · 获赞 9 · 访问量 6762

猜你喜欢

转载自blog.csdn.net/qq_37870369/article/details/102381436
今日推荐