TCP基本套接字

TCP客户端和服务器编程离不开基本的套接字函数,学习TCP基本套接字很重要,下面学习一下基本的套接字接口,并实现一个简单的客户端和服务器程序。

socket函数

为了执行网络IO,一个进程要做的第一件事情就是要创建套接字。

在这里插入代码片
#include <sys/socket.h>
int socket(int family, int type, int protocol)
返回:成功返回非负描述符,失败返回-1
family:
AF_INET->IPV4协议
AF_INET6->IPV6协议
AF_LOCAL->uinx域协议
AF_ROUTE->路由套接字协议
type:
SOCK_STREAM->字节流套接字
SOCK_DGRAM->数据报套接字
SOCK_RAM->原始套接字
protocal:
IPPROTO_CP->TCP传输协议
IPPROTO_UDP->UDP传输协议
IPPROTO_SCTP->SCTP传输协议
connect函数

TCP客户端通过connect函数将来建立与TCP服务器的连接

在这里插入代码片
#include <sys/socket.h>
int connect(int sockfd, const struct sockaddr *seraddr, socklen_t addrlen)
connect会触发三次握手。
bind函数

bind函数把一个本地协议地址赋予一个套接字。

在这里插入代码片
#include <sys/socket.h>
int bind(int sockfd, const struct sockaddr *myaddr, socklen_t addrlen)
bind函数可以指定一个端口号和ip,也可以都不指定。
listen函数

listen函数仅有TCP服务器调用
内核会为任何一个给定的套接字维护两个队列:
1.未完成连接队列,已有客户端发起并到达服务器,而服务器并未完成相应的TCP三路握手的过程,此时这些套接字处于SYN_READ状态。
2.已完成连接队列,完成三次握手的,套接字处于ESTABLISHED。

在这里插入代码片
#include <sys/socket.h>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值