- - PR -
C(WINSOCK)で書かれたクライアントとC#で書かれたサーバのソケット通信
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-06-18 17:28
半人前です。
C(WINSOCK)で書かれたクライアントとC#で書いたサーバとの 通信テストを命じられテストを行っているのですが、サーバ側のBeginAccept がウンともスンとも言ってくれません。 ちなみにポートは間違っていませんし、ちゃんと開いています。 クライアント側からのパケットも投げられている事は確認済みです。 何をどのように調べればいいのか、どなたかお教えください。 | ||||||||
|
投稿日時: 2004-06-18 18:16
お世話になっております、半人前です。
CとC#の違いに(動作の確認が取れない)理由があるのだろうか?と推測して 質問しましたが、調査を進めてみると C→同期通信の手順で書かれている C#→非同期通信の手順で書かれている という違いも判明しました。 これはもう、動作確認が取れなくて当たり前だと結論づけてもいいものでしょうか? 識者に背中を押して欲しい半人前でした。。。 | ||||||||
|
投稿日時: 2004-06-18 18:39
識者じゃぁないので、半歩下がってコメント
まず一点。BeginAccept()にAsyncCallBackのインスタンスを渡していますか? 渡しているのであれば、デバッガで、コールバックのdelegate関数にブレークポイントをセットして、ちゃんと関数に入ってくれるかどうかを確認すればよいのではないでしょうか? サーバー:非同期通信、クライアント:同期通信だからといって、動作確認が取れないわけではないと思いますよ。 | ||||||||
|
投稿日時: 2004-06-18 20:25
諸農です。
サーバー側が非同期で実装されているのは当然だと思います。 無反応という現象はどのようにして確認されましたか? 非同期で別スレッドで起動したメソッドを トラップできていないって事でしょうか? _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||
|
投稿日時: 2004-06-20 12:11
出来ないはずは無いので単純なミスだと思われる。
とりあえずパケットキャプチャなどで、Ethernetを流れるフレームを観察して、何が起こっているのか正確に把握しないと話しにならない。推測と試行錯誤で対応していると、時間ばかり過ぎていくよ。 #稀に「プロトコルスタックの相性でダメでした」って事もあるし。 | ||||||||
|
投稿日時: 2004-06-20 23:11
>CとC#の違い・・・
ということは、C#で作ったクライアントとは正しく通信が出来るということですか? 「クライアントがCでサーバーがC#で書かれた」ということが問題のように思われているようですが、クライアントは、正しくプロトコルを実装したサーバーとは正しく通信が出来ることは判っているんですか? サーバーは、正しくプロトコルを実装したクライアントとは正しく通信出来ることは判っているんですか? とりあえずTelnetでサーバーに接続して、プロトコルを正しく実装しているか確認してみてはどうです? | ||||||||
|
投稿日時: 2004-06-21 09:20
BeginAccept()にAsyncCallBackのインスタンス → はい、渡しています。 コールバックのdelegate関数にブレークポイントをセットして、ちゃんと関数に入ってくれるかどうかを確認 → (delegateではないんですが)コールバック関数の中にブレークポイントをセット したところ、コールバック関数内に入ってこない事がわかりました。 と言う事は。。。???(この先どう進めるべきでしょう) | ||||||||
|
投稿日時: 2004-06-21 09:26
レスありがとうございます。
いえ、そこまで行っていないです 偶然にもかずくんさんが指摘されましたが、BeginAcceptのコールバック関数で止まって いる状態です |