c++实现tcp客户端连接时报错
connect errno:127 errinfo:Transport endpoint is already connected
找啊找啊找原因... ...
是由于在connect 之前,把socket设置为非阻塞导致,注掉后成功
flags = Fcntl(sockfd, F_GETFL, 0);
Fcntl(sockfd, F_SETFL, flags | O_NONBLOCK);
//set_blocking(fd,false);//设为非阻塞
struct sockaddr_in addr_in;
addr_in.sin_family = AF_INET;
addr_in.sin_port = htons(port);
get_host_by_name(addr_in, ip.c_str());
int retrytime = 0;
time_t uptime = 0;
uptime = time(NULL);
while(retrytime <= 3)//连接失败重连3次
{
if(m_socketinfo.m_socketfd <= 0)
{
NanoLog::Instance()->Log_e("client-http","Socket is invalid.\n");
return false;
}
errno = 0;
int ret = connect(fd,(struct sockaddr*)&addr_in,sizeof(addr_in));
if(ret < 0)
{
... ...