linux 的网络编程 (一)

1.linux 的网络套接字操作函数

1.1 创建套接字描述符函数

linux 使用socket函数来创建一个套接字描述符,对该函数的调用如下:

#include <sys/types.h>
#include <sys/socket.h>
int scoket(int domain,int type,int protocol)
/*
函数调用成功返回套接字的描述符,否则返回-1
参数说明:
1.domain:套接字的协议
2.type:套接字的类型
3.protocol:除了使用原始套接字以外,通常情况下设置为0,以表示使用默认的协议
*/

socket函数支持的协议族:

  1. AF_UNIX,AF_LOCAL:本地交互协议
  2. AF_INET:IPv4协议
  3. AF_INET6: IPv6协议
  4. AF_NETLINK:内核接口设备协议
  5. AF_IPX:IPX-Novell协议
  6. AF_X25:ITU-T.25/ISO-8208协议
  7. AF_AX25:业余无线电AX.25协议
  8. AF_ATMPVC:原始ATM接入协议
  9. AF_APPLETALK:苹果的appletalk协议
  10. AF_PACKET:底层的数据包接口

socket 函数支持的套接字类型:

  1.  SOCK_STREAM:数据流
  2. SOCK_DGRAM:数据报
  3. SOCK_SEQPACKET:顺序数据报
  4. SOCK_RAW:原始套接字
  5. SOCK_RDM:可靠传递消息
  6. SOCK_PACKET:数据包

使用socket函数创建套接字代码socket_demo.c如下:

#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
int main (){
        int socket_fd;
        socket_fd = socket(AF_INET,SOCK_STREAM,0);
        if (socket_fd < 0)
        {
                printf("scoket fails\n");
                return 1;
        }
        else
        {
                printf("scoket success\n");
        }
        return 0;
}

编译代码:gcc -o socket socket_demo.c

代码运行结果:

[root@localhost socket]# ./socket
scoket success
[root@localhost socket]#

 

posted @ 2022-02-10 20:36  石头,等待  阅读(39)  评论(0编辑  收藏  举报