
No.2ベストアンサー
- 回答日時:
>クライアントから接続し、サーバでacceptした後、
> クライアントからsend()→サーバでrecv()
> サーバからsend()→クライアントでrecv()
>を繰返しており、
recv()しているならばバッファがあふれている…とは思えませんが……
ちなみに送信側で1回send()したからといって、受信側で同じサイズを指定したrecv()で受信できるとは限らない。
という辺り大丈夫…ですよね?
# プロトコルによってはsend()に間隔が開くのでそのまま流れるコトもあるかも知れませんが…。
# 実際のところはTCP/IPスタックなどによる…でしょう。
>不正終了したとかを疑うべきなのでしょうか?
クライアント側が…ということならば、確認してみるべきかと。
あとは…パケットキャプチャソフトなどで双方のやりとりを確認してみるとか…でしょうか。
wiresharkやtcpdumpで…。
>直前にselectして書き込み可能な状態なのを確認しているのですが、
>それでも10053のエラーが起きてしまいます。
select()で確認できるのは…自分の方の送信バッファに空きがあるか…
ということではないかと。
バッファから相手に送る際に接続が切れたりすると、応答がなくなりますからエラーになるかと思われます。
# その際のエラーコードが10053かは不明ですが…。
この回答への補足
>recv()しているならばバッファがあふれている…とは思えませんが……
すみません。バッファがあふれているようでした。
char aaa[1000];
char
memset(aaa,0x00,sizeof(aaa));
strcpy(aaa,"hogehoge");
として、sendのところで
send(sock, aaa, sizeof(aaa));
で呼び出しているんですが、
なぜか5回目のところで1000バイトを送ってしまっていたようです。
受信側に1000バイトの受信能力がなかったためエラーになっているようでした。
No.1
- 回答日時:
とりあえず…
受信側は正しく動作していますか?
>10053のエラー
WSAECONNABORTEDです。
ErrorLookupでは…「確立された接続がホスト コンピュータのソウトウェアによって中止されました。」
となります。
受信側がrecv()していなくて受信バッファがあふれたとか、
受信側のソフトが不正終了したとか、
接続したまま長時間放置していて経路の途中で切られたとか…
この回答への補足
回答ありがとうございます。
クライアントから接続し、サーバでacceptした後、
クライアントからsend()→サーバでrecv()
サーバからsend()→クライアントでrecv()
を繰返しており、
5回目のサーバからsend()の時に10053のエラーが起きているようです。
この場合はクライアントのほうの受信バッファがあふれたとか、
不正終了したとかを疑うべきなのでしょうか?
直前にselectして書き込み可能な状態なのを確認しているのですが、
それでも10053のエラーが起きてしまいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
TCP/IP通信時のサーバーからの受信
C言語・C++・C#
-
NetworkStreamからのRead()で、処理が止まる(C#)
C言語・C++・C#
-
非ブロッキングソケットのrecvについて
C言語・C++・C#
-
-
4
Winsockで接続待ちタイムアウトを設定する方法
C言語・C++・C#
-
5
winsock通信時エラーの回避
Visual Basic(VBA)
-
6
winsockを使ったTCP及びUDP通信について
C言語・C++・C#
-
7
recv関数でフリーズしてしまう
C言語・C++・C#
-
8
C# シリアル通信でデータ受信時の欠損について
C言語・C++・C#
-
9
Javaのファイルダウンロードについて
Java
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C# シリアル通信でデータ受信...
-
winsockでソケット通信の開発を...
-
「スイッチングハブのバッファ...
-
SerialPortのDataReceivedイベ...
-
socket: recvはいつ,どれだけ...
-
WaitForMultipleObjects関数の...
-
WriteFile()でのデータ送信がで...
-
RS-232Cでバイナリデータを受信...
-
シリアル通信の出力バッファと...
-
mp3再生中のISampleGrabberにつ...
-
TCPでの非同期型select関数につ...
-
バッファ領域がありません。と...
-
メールを数日後に自動返信
-
Macターミナルで実行中のプログ...
-
VBSの処理中一旦処理を止めて再...
-
VBAの配列サイズとメモリに関して
-
メッセージボックスのボタン名変更
-
ACCESS側からEXCELの書式を設定...
-
メモリのセグメント違反の解決...
-
VB.NETで起動したExcelの閉じ方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C# シリアル通信でデータ受信...
-
「スイッチングハブのバッファ...
-
WriteFile()でのデータ送信がで...
-
socket: recvはいつ,どれだけ...
-
winsockでソケット通信の開発を...
-
RS-232Cでバイナリデータを受信...
-
SerialPortのDataReceivedイベ...
-
シリアル通信エラー
-
C#で通信処理。応答がない場合...
-
Linuxでのシリアル通信について...
-
シリアル通信の出力バッファと...
-
バイナリデータ受信時のデータ順
-
ReadFileについて
-
トラックバック機能を作りたい
-
ソケット通信内 read関数について
-
recv関数の受信結果について
-
ReadFile(GPSとの通信)Win7で...
-
visual c# 2010 シリアル通信ア...
-
WinsockAPIのrecvfromの受信デ...
-
popen実行時にバッファが空の場合
おすすめ情報