socket网络编程服务端实现

socket网络编程

创建套接字socket
函数原型
int socket(int domain, int type, int protocol);
参数说明: domain 有以下几种在这里插入图片描述参数type有以下几种:
在这里插入图片描述
protocol默认为0;

绑定端口号
函数原型
int bind(int sockfd, const struct sockaddr *addr,socklen_t addrlen);
参数说明:sockfd 是socket的返回值
const struct sockaddr *addr是一个结构体包含参数如下:

struct sockaddr_in {
  __kernel_sa_family_t  sin_family;     /* Address family               */
  __be16                sin_port;       /* Port number                  */
  struct in_addr        sin_addr;       /* Internet address             */

  /* Pad to size of `struct sockaddr'. */
  unsigned char         __pad[__SOCK_SIZE__ - sizeof(short int) -
                        sizeof(unsigned short int) - sizeof(struct in_addr)];
};

结构体中有另一个结构体struct in_addr原型如下:

* /* Internet address. */
struct in_addr {
        __be32  s_addr;
};*

这时候就需要地址转换API:

 #include <arpa/inet.h>
 int inet_aton (const char *__cp, struct in_addr *__inp);
 //将192.168这种字符串转为网络能识别的
 char *inet_ntoa (struct in_addr __in);
 //把网络格式的IP转换为192这种字符串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值