基本TCP套接字编程

1.  socket函数原型:

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

2. bind函数原型:


#include <sys/socket.h>
int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen);

参数:

​
struct sockaddr_in {
    sa_family_t sin_family;  /* 地址族: AF_INET */
    u_int16_t sin_port;      /* 按网络字节次序的端口 */
    struct in_addr sin_addr; /* internet地址 */
};

struct in_addr {
    u_int32_t s_addr;         /* 按网络字节次序的地址 */
};

 

3. listen函数原型: 设置同时与服务器连接上的上限数(同时进行3次握手的客户端数量)

#include <sys/socket.h>
int listen(int s, int backlog);

参数:

  • backlog:内核为相应套接字排队的最大连接数
  •  

4. accept函数原型:阻塞等待客户端建立连接,成功的话,返回一个与客户端成功连接的socket文件描述符

#include <sys/socket.h>
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);

参数:

  • sockfd:socket函数返回值
  • addr:传出参数——成功与服务器建立连接的那个客户端的地址结构(IP + port)
  • addrlen:传入传出。入:addr的大小。出:客户端addr实际大小
  • 成功:能与服务器进行数据通信的socket对应的文件描述符

 

5. connect函数原型:

#include <sys/socket.h>
int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);

参数:

  • socket函数返回值
  • addr:传入参数——服务器地址结构
  • addrlen:服务器的地址结构大小

注意:如果不使用bind客户端地址结构,采用隐式绑定

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值