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

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