ソケットプログラミング、エラーの原因 ソケット以外でのソケット操作
Socket operation on non-socket のエラーは、2つの方法で発生します。
1. ソケットを作成する。
if(listenfd= socket(AF_INET,SOCK_STREAM, 0)==-1){. <未定義
perror("ソケットの作成に失敗しました!")。
exit(-1)を実行します。
}
バインド時にソケット操作で非ソケットエラーになる
正しいコードは
if((listenfd = socket(AF_INET, SOCK_STREAM, 0)) == -1){ [1])
<未定義
perror("ソケットの作成に失敗しました!")。
exit(-1)を実行します。
}
2.受理するとき。
if(connfd=accept(listenfd,(struct sockaddr *)&client_addr,(socklen_t *)&sin_size)==-1){ (Listenfd,(struct sockaddr *)&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になります。
関連
-
linux シェルスクリプト実行エラー:不正な置換
-
ImportError: libSM.so.6: cannot open shared object file: そのようなファイルやディレクトリはありません 解決方法
-
BadPaddingException:与えられた最終ブロックが適切にパディングされていない
-
kill はプロセスを終了させることができません
-
Python3.xでprintを使用する際のエラー(SyntaxError: Missing parenthes in call to 'print')に対する解決策を公開しました。
-
AttributeError: モジュール 'tensorflow' には 'get_default_graph' という属性がありません。
-
linuxのセグメンテーション障害
-
Werror=unused-but-set-variableエラーの解決法
-
Ubuntu 20.04 プロキシ設定
-
arpa/inet.h
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Ubuntu で vs code のソースファイル "iostream" を開けない。
-
ベクターに型名がない
-
LNMP nginx1.4.6+php5.5.11+mysql5.6.17+mecache+opcache コンパイルとインストール+opcacheパラメータ詳細+opcacheビジュアルPHPページコード
-
ubuntu installationEnvironmentError: mysql_config not found エラー
-
ソリューションが不完全なタイプである
-
解決済み gpg: 有効な OpenPGP データが見つかりません。
-
パイプが壊れた java.io.IOException: パイプの破損 解決方法
-
metasploitに関するいくつかのアーキテクチャカタログ
-
CentOS 7のインストールとDockerの展開
-
nginx の Linux インストール 'struct crypt_data' には 'current_salt' という名前のメンバがない 解決方法