MENU

socket编程Transport endpoint is not connected错误总结

前言

最近使用C++网络编程,计划实现一个web服务(模拟http请求、支持host模式)。刚接触犯了一个低级的通信错误,导致Transport endpoint is not connected。

原因分析

在server端accept一个新的连接后返回一个文件描述符(这里就叫connect_fd),但这个文件描述符有区别于初始化socket的listen_fd文件描述符。在read函数的时候错误将listen_fd传入到函数中,最终导致Transport endpoint is not connected错误。

# read读取数据过程
while(true){
    if((nread = read(connect_fd, ptr, nleft)) < 0){
    
    }
}

# accept函数 使用的是
int accept(int listen_fd, struct sockaddr *cliaddr, socklen_t *addrlen);
返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码
评论列表
  1. wenkai wenkai

    谢谢你的仔细记录,我也犯了这样的错误,谢谢!

添加新评论