TCP サーバーにデータを送信しようとすると、「入出力エラー」エラーが発生します。ソケットに関して、これはどういう意味ですか? 基本的に、私が使用したのと同じコードが常に正常に機能しました。ソケットを介して送信しようとしたときの入力/出力エラーの理由と、それらを確認/修正する方法を誰かが教えてくれることを望んでいました。どんな助けでも大歓迎です。
struct SOCKETSTUS {
int sendSockFd;
int recvSockFd;
short status;
long heartBeatSendTime;
long heartBeatRecTime;
long loginPackSendTime;
};
struct SOCKETSTUS sockArr[128];
if (tv.tv_sec - sockArr[i].heartBeatSendTime >= beatTim)
{
if (send(sockArr[i].sendSockFd, szBuffer, packetSize, 0) != packetSize)
{
fprintf(stderr, "Heartbeat package send failed:[%d][%s]\n", errno, strerror(errno));
if (errno == EBADF || errno == ECONNRESET || errno == ENOTCONN || errno == EPIPE)
{
Debug("link lose connection\n"); Reconn(i); continue;
}
}
else
{
sockArr[i].heartBeatSendTime = tv.tv_sec;
if (sockArr[i].status == SOCK_IN_FLY)
sockArr[i].heartBeatRecTime = tv.tv_sec;
}
}
send()
呼び出しでエラーが発生しました。