服务器编程基础API

本文介绍了服务器编程的基础API,包括socket的创建、命名、监听、接受连接和发起连接等关键步骤。详细讲解了各函数参数及返回值,如domain、type、protocol参数在创建socket时的作用,以及bind、listen、accept、connect函数的功能和使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建socket

socket介绍

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

domain参数

domain参数告诉系统是用哪个底层协议。
支持的协议有:

   AF_UNIX 
   AF_LOCAL
   AF_INET  
   AF_AX25
   AF_IPX   
   AF_APPLETALK 
   AF_X25  
   AF_INET6 
   AF_DECnet  
   AF_KEY
   AF_NETLINK   
   AF_PACKET  
   AF_RDS

其中常用的是TCP/IP的协议族参数AF_INETAF_INET6,UNIX本地族协议参数AF_UNIX

type参数

type指定服务类型常用的服务类型:

参数 服务类型
SOCK_STREAM 字节流套接字
SOCK_DGRAM 数据报套接字
SOCK_SEQPACKET 有序分组套接字
SOCK_RAW 原始套接字
SOCK_RDM 可靠的UDP套接字
SOCK_PACKET 数据包套接字

protocol参数

protocol参数是在前两个参数构成的协议集合下在选择一个具体的协议,不过这个值通常是唯一的,前面两个参数的值已经决定的它的值,几乎所有的情况都把它设置为0。

返回值

  • 成功:返回socket文件描述符。
  • 失败:返回-1,并设置errno,参数是负数错误码是22,参数是非负数错误码是93。

测试代码:

#include <iostream>
#include <sys/types.h>
#include <sys/socket.h>
using namespace std;

int main()
{
   
  int pro;
  while (cout << "输入࿱
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值