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