套接字学习4

很久一段时间没有回来这里了,先前的计划貌似搁浅了很长一段时间。没关系,作为菜鸟,今天晚上再从新把先前所学的捡起来!

int cfd = connect(SOCKET sockfd , (SOCKADDR *)&my_addr , sizeof(SOCKADDR));

1.如果建立成功返回 0,如果建立错误返回 SOCKET_ERROR;

2.第一参数套接字的描述符

3.第二参数套接字将要连接的地址信息

4.套接字名字的长度

对于TCP/IP 协议里面这个函数主要用于客服端(client),用于建立与服务器的连接。

 

int send(SOCKET sockfd , const char FAR *buf , int len , int flags);

首先应该明白调用send()函数并意味着数据传送到达

1.第一参数套接字描述符;

2.第二参数代表待发送的缓冲区ps:是常量哦!

3.待发数据的长度;

4.调用执行的方式,一般默认为0;

 

int recfd=recv(SOCKET sockfd , char FAR*buffer , int len ,int flags);

对于recv函数如果在接收数据发生错误,那么将返回SOCKET_ERROR,如果对方中断了数据发送那么将返回 0。recv是等所有数据传递完毕才实行拷贝操作,注意有时候拷贝不完,recv将一直拷贝下去,直到拷贝完所有接收的数据!

1.套接字描述符

2.接收数据的buffer的地址

3,调用执行的方式

 

int listen(SOCKET sockfd , int backlog);

listen函数主要是监听申请的连接,主要用于多个用户申请对服务器连接的情况(backlog即存储的是最大允许连接的数量)!

1.套接字描述符

2.等待连接队列的最大长度。

 

int accept(SOCKET sockfd , (SOCKADDR *)&my_addr , int FAR*  sockaddrlen);

这个函数十分重要,用于接受一个套接字连接!

1.套接字描述符;

2.一个连接实体的地址;

3.用于存储实体地址长度的一个指针;

对于accept()函数如果连接失败将返回 -1

 

至此为止对于TCP协议涉及的函数基本上介绍完整了!现在已经可以写出一个简单的client/server了。其实,这些细节的函数并不是很重要,关键的是要理解TCP协议的思想。这个才是学习总结的目的。下一次再总结tcp三次握手的原理和用c++简单实现以个c/s模型!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值