TCPサーバーにクライアントが接続したら「HELLO」を送信する処理を作ったのですが、wirteのタイミングでサーバーアプリが落ちます。
例外処理などで確認してみたのですが、何もエラーが出ずに落ちます。
writeの直前までの処理は走っています。どこが悪いのでしょうか?
C++
1#include <stdio.h> 2#include <stdlib.h> 3#include <string.h> 4#include <sys/types.h> 5#include <sys/socket.h> 6#include <netinet/in.h> 7#include <iostream> 8#include <fstream> 9 10int main(void) { 11 int iSock; 12 int iPort 50000; 13 int iLen; 14 int iClientSock; 15 struct sockaddr_in addr; 16 struct sockaddr_in client; 17 18 iSock = socket(AF_INET, SOCK_STREAM, 0); 19 20 addr.sin_family = AF_INET; 21 addr.sin_port = htons(iPort); 22 addr.sin_addr.s_addr = htonl(INADDR_ANY); 23 24 bind(iSock, (struct sockaddr *)&addr, sizeof(addr)); 25 26 listen(iSock, 5); 27 28 while(1) { 29 iLen = sizeof(client); 30 iClientSock = accept(iSock, (struct sockaddr *)&client, &iLen); 31 32 std::cout << "CONNECT!" << std::endl; //ここまでは確認できる 33 write(iSock, "HELLO", 5); 34 std::cout << "SEND!" << std;;endl; 35 } 36 37 close(iSock); 38 close(iClientSock); 39 40 return 0; 41}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/07/13 07:57