ソケット以外のエラーに対するソケット操作は、2つの方法で発生する可能性があります。
2022-02-15 06:10:13
例えば、call connect socket accept function error, can perror("socket"); perror("connect"); printf("%sn",strerror(errno)); can be typed errors 特定のエラー
select関数をもう一度: <0 : エラーリターン、=0: 正常、タイムアウトリターン、つまり、fdの読み書きができない、ノンブロッキングの場合のみ >0: 正常リターン、FDISSET関数を呼んでfdを調べることができる。
非ソケットエラー時のソケット操作は、2つの方法で発生します。
1. ソケットを作成します。
if(listenfd= socket(AF_INET,SOCK_STREAM, 0)==-1){.
perror("ソケットの作成に失敗しました!")。
exit(-1)を実行します。
}
は、バインド時にソケット以外のソケット操作でエラーが発生します。
正しいコードはこうです。
if((listenfd = socket(AF_INET, SOCK_STREAM, 0)) == -1){.
perror("ソケットの作成に失敗しました!")。
exit(-1)を実行します。
}
2.受理されたとき。
if(connfd=accept(listenfd,(struct sockaddr *)&client_addr,(socklen_t *)&sin_size)==-1){ ...
perror("accept error!");
exit(-1)です。
}
は、recv時に非ソケットエラーでソケット操作を行います。
正しいコードは
if((connfd=accept(listenfd,(struct sockaddr *)&client_addr,(socklen_t *)&sin_size))==-1){ (Listenfd,(struct sockaddr *)&sin_size))となります。
perror("accept error!");
exit(-1)です。
}
Socket operation on non-socket エラーが発生するのは、以下の理由です。
if(listenfd= socket(AF_INET,SOCK_STREAM, 0)==-1)
if(connfd=accept(listenfd,(struct sockaddr *)&client_addr,(socklen_t *)&sin_size)==-1))。
この2つの文章の()が抜けていることが原因です。割り当てが最も低い優先度に一致するため、listenfdとconnfdは、作成/接続が成功した場合は0、失敗した場合は1になる
select関数をもう一度: <0 : エラーリターン、=0: 正常、タイムアウトリターン、つまり、fdの読み書きができない、ノンブロッキングの場合のみ >0: 正常リターン、FDISSET関数を呼んでfdを調べることができる。
非ソケットエラー時のソケット操作は、2つの方法で発生します。
1. ソケットを作成します。
if(listenfd= socket(AF_INET,SOCK_STREAM, 0)==-1){.
perror("ソケットの作成に失敗しました!")。
exit(-1)を実行します。
}
は、バインド時にソケット以外のソケット操作でエラーが発生します。
正しいコードはこうです。
if((listenfd = socket(AF_INET, SOCK_STREAM, 0)) == -1){.
perror("ソケットの作成に失敗しました!")。
exit(-1)を実行します。
}
2.受理されたとき。
if(connfd=accept(listenfd,(struct sockaddr *)&client_addr,(socklen_t *)&sin_size)==-1){ ...
perror("accept error!");
exit(-1)です。
}
は、recv時に非ソケットエラーでソケット操作を行います。
正しいコードは
if((connfd=accept(listenfd,(struct sockaddr *)&client_addr,(socklen_t *)&sin_size))==-1){ (Listenfd,(struct sockaddr *)&sin_size))となります。
perror("accept error!");
exit(-1)です。
}
Socket operation on non-socket エラーが発生するのは、以下の理由です。
if(listenfd= socket(AF_INET,SOCK_STREAM, 0)==-1)
if(connfd=accept(listenfd,(struct sockaddr *)&client_addr,(socklen_t *)&sin_size)==-1))。
この2つの文章の()が抜けていることが原因です。割り当てが最も低い優先度に一致するため、listenfdとconnfdは、作成/接続が成功した場合は0、失敗した場合は1になる
関連
-
gitアップロードファイルのエラーを修正する方法 [rejected] master -> master (fetch first) error: failed to push some refs to '.
-
ImportError の解決に成功しました。必要な依存関係 ['numpy'] がありません。
-
undefineddouble' の前にある期待される一次式を解決します。
-
tensorflow.contrib'という名前のモジュールはありません。
-
numpy.random.multivariate_normalの使用法
-
C++で'atoi'がこのスコープで宣言されていない問題を解決するにはどうしたらいいですか?
-
宣言されたパッケージが Solution と一致しない
-
STM32 学習 0 未定義識別子 "..." 使用時のエラー 解決方法
-
Python で 'str' と 'int' のインスタンス間でエラー '>=' がサポートされていない
-
lua が nil 値を呼び出そうとする。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
can't find '__main__' module in "問題の詳細!
-
IntelliJ IDEAでgitを使用してリモートリポジトリから読み込めなかった問題を解決する
-
デバッグのアサーションに失敗する問題 解決方法
-
問題 free(): 無効な次のサイズ (fast): 0x0000000001475e70 ***
-
pythonのpandas_datareaderパッケージの紹介
-
ResultSet が閉じた後の操作は許可されない ResultSet 閉鎖例外
-
Angular.js Unknownプロバイダエラー
-
Androidアプリケーション開発 - ビープ音とバイブレーションによる警告の実装
-
AndroidのタッチイベントonScrollとonFlingは、特に区別が重要です。
-
モジュール 'numpy' に 'array' 属性がない問題の解決