Dotcpp  >  编程教程  >  TCP协议客户端及代码实现  >  Socket编程之connect函数

Socket编程之connect函数

点击打开在线编译器,边学边练

这一节我们讲connect连接,这一步位于客户端的第二步,调用connect阻塞客户程序,传输层实体开始建立连接,当连接建立完成时,取消阻塞;

Socket通信客户端

函数功能:

向服务端发起连接请求

头文件:

#include <winsock2.h>

函数原型:

int connect(int sockcd, const struct sockaddr *addr, int addrlen);

返回值类型:

整型

返回值:

成功返回0,失败返回-1。当客户端调用 connect()函数之后,发生以下情况之一才会返回(完成函数调用)

1、服务器端接收连接请求

2、发生断网的异常情况而终端连接请求

参数说明:

sockcd为客户端建立socket函数的返回值。

addr是一个sockaddr结构的指针,用于指定所要连接的服务器的地址(服务端的IP地址和端口号,要和服务端的实际IP地址以及绑定的端口一致才可以)。

addrlen为addr变量的大小,可由 sizeof()计算得出。                                        


调用connect函数整体代码的实现:

connect(sockcd,(sockaddr*)&seraddr,sizeof(seraddr));//需要注意的是,所谓的“接收连接”并不意味着服务器调用

accept()函数,其实是服务器端把连接请求信息记录到等待队列。因此connect()函数返回后并不进行数据交换。而是要等服务器端 accept 之后才能进行数据交换。、


这一步调用完成之后,就和服务端建立了通信,就可以使用send或recv相互发送和接收消息了



本文固定URL:https://www.dotcpp.com/course/792

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)