6

https://beej.us/guide/bgnet/html/multi/index.htmlにあるCネットワークプログラミングの簡単なチュートリアルを実行してい ます。

それを読んだ後、私の計画は、テスト用のクライアント/サーバープログラムを実装し、それから遊んだり、変更したり、追加したりすることでした。ここにあるプログラム(TCP接続を処理する最初のクライアント/サーバーセット)を実装しました。 : https ://beej.us/guide/bgnet/html/multi/clientserver.html

基本的に、「サーバー」は1台のマシンで実行され、クライアントが接続すると、サーバーは「Hello、world!」を送信するだけです。これは、同じマシンで両方を実行し、ローカルホストに接続する場合に正常に機能します。

ただし、異なるマシン間で接続できません(DebianサーバーとOpenBSDサーバーの両方で試してみましたが、iptables / pfルールセットはありません)。接続がタイムアウトするだけで、理由はよくわかりません。両方にpingとsshを実行できます。

誰か、特にこのチュートリアルに精通している人は、私を正しい方向に向けることができますか?

編集:サーバーにXがないため、スクリーンショットはありませんが、netstat -tlnp | grep3490は私に何も与えません。

netstat -anは、3490でリッスンしているtcp接続を示します。

4

2 に答える 2

1

コードのどこにも servinfo が入力されていません

// サーバーは任意の IP アドレスからの接続を許可する必要があります

  serv_info.sin_addr.s_addr = INADDR_ANY;

また、ファミリーとポートを埋める必要があるかもしれません

// サーバーのアドレスファミリーを埋める

  serv_addr.sin_family = AF_INET;

詳細が必要な場合は、フォーラム http://forum.codecall.net/topic/63924-a-simple-tcp-server-using-linux-c-api/に書いた動作中のサーバーを次に示します。

于 2012-05-11T07:27:58.157 に答える