No.5ベストアンサー
- 回答日時:
>OnAccept()はすぐ帰ってくるのですが、、、
んー。サーバー側の動きですが
Listen() -> OnAccept() -> Accept() となりますが
Accept()する時 new した新しい CAsyncSocket に割り当ててますよね? Listenするソケットと実際に通信するソケットは異なるのが普通です。
情報が少ないので、ちょっとよく分かりません。
この回答への補足
ありがとうございます。
>Listenするソケットと実際に通信するソケットは異なるのが普通です。
ここに気付いていませんでした・・。
うまく状況を説明できて居らず、スイマセン。
STREAM型(TCP/IP接続で)のネットワークアプリケーションを作りたいのです。
もう一度、教えていただいた方法で試してみます。
いろいろご教授ありがとうございました。
接続できるようになりました・・・。
しかし、相手が受信したことを確認できるアプリケーションにはまだ遠いようです。
STREAM型を使えばできると思っていたのですが・・・。
何かほかにご存知でしたら知らせてください。
本当にどうもありがとうございました。
No.4
- 回答日時:
>同じマシン上でも理論上は可能ですよね??
理論上というか、全然問題ないです。
>しかし、なかなかOnConnect()に帰ってこないのですよね。。
ん?同じマシンですよね?
一瞬のうちにつながりませんか?
なかなか返ってこないというのは、返ってくるけど遅いということですか?
この回答への補足
解答ありがとございます。
助かっています。
すぐ返ってこないというのは、何か致命的なエラーがあるのでしょうか・・・・。
OnAccept()はすぐ帰ってくるのですが、、、
流れとしては、現在クライアントがConnectしたら、サーバがOnAccept→Accept
、そこで動きは止まってしまいます。
もしかしたら非同期式になっていないのでしょうか・・・・。
なんだか不安なのですが。
スイマセン、ご面倒お掛けしています・・。
No.3
- 回答日時:
非ブロッキングモードなら、デフォルトで
WSAEWOULDBLOCK
が返ってきますので、エラーと判断することはないですよ。
正常動作です。
つまり、getLastErrorを実行しても、
WSAEWOULDBLOCK以外が返ってきた場合を
エラーとしてあげて、
WSAEWOULDBLOCKが戻った場合は、以降の処理をして構いません。
No.2
- 回答日時:
MFCだったらおそらく CAsyncSocket で接続されているのだと思いますが、非ブロッキングソケットの場合は Connect を呼び出してもその時点では接続しない(接続するまで関数がブロックしない)のでこのWSAEWOULDBLOCKが返ってきます。
この場合WSAEWOULDBLOCKが返るのは正常な動作です。このエラーコードだけは無視すればいいです。そのうち接続結果が OnConnect() に返ってきますのでそこで接続結果を判断しましょう。
昔悩んだ記憶があります。(^^;
この回答への補足
ありがとうございます。
しかし、なかなかOnConnect()に帰ってこないのですよね。。
同じマシン上でも理論上は可能ですよね??
No.1
- 回答日時:
非ブロッキングモードとブロッキングモードのどちらでソケット処理を
しているのでしょうか?
非ブロッキングモードでソケットを生成している場合、
必ずこの値が戻るようです。
非ブロッキングモードの場合は、接続完了イベントがコールバックされた以降に
送受信処理をすればできると思います。
ブロッキングモードは特定の理由がない限り、処理がとまってしまうので
使用しないほうがいいかと思います。→これはうそかも。
ちなみに私が以前作成したときは、非ブロッキングモードで送受信処理を
おこないました。
参考URL:http://www.microsoft.com/japan/developer/library …
この回答への補足
すばやい解答ありがとうございます。
非ブロッキングモードでソケット処理を行っています。
すいません、接続完了イベントはOnConnectを使うのでしょうか???
知識が危ういもので。。。
接続が完了していなくてもサーバのAccept、クライアントのSendはエラーが起きていないのです。
ただ、サーバのReceiveで接続されていないというエラーが出てくるのです。
なにかご存知でしたら教えてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 6 2023/03/03 18:05
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 2 2023/03/02 18:54
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- iOS HDD交換修理したWindows10・PCのOFFICE プロダクトキーがエラーとなる 2 2023/04/01 02:17
- Visual Basic(VBA) VBAのエラーについて 2 2023/08/02 17:46
- Access(アクセス) アクセス ステップインのやり方 9 2022/07/12 11:42
- Word(ワード) Wordのデータが毎回破損してしまう 1 2022/08/24 11:30
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
ソケットのrecvの戻り値が0
C言語・C++・C#
-
recv関数の受信結果について
C言語・C++・C#
-
winsock通信時エラーの回避
Visual Basic(VBA)
-
-
4
Winsockでの送受信についての質問
C言語・C++・C#
-
5
recv関数でフリーズしてしまう
C言語・C++・C#
-
6
CString型 全角半角を意識せずに「1文字」ずつ取り出す
C言語・C++・C#
-
7
printfの書式%.*s
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
TCP/IP通信時のサーバーからの受信
-
UDP通信におけるbind関数について
-
ソケットを用いた1対多通信につ...
-
ソケットのrecvの戻り値が0
-
Socket通信の0バイト受信について
-
同じLAN内パソコンのIPアドレス...
-
SIPがNATを越えられない理由
-
recv関数でフリーズしてしまう
-
相手のIPアドレスを取得する方法
-
Winsockで接続待ちタイムアウト...
-
JavaによるXMLの送受信
-
VB6のwinsockでconnectできない
-
エクセル VBA でのCOMポート...
-
ソケット通信 同じポート番号...
-
Socket通信を待ち受け状態にす...
-
送信したデータの一部が文字化...
-
ネットワークプログラミングに...
-
メッセージを受信したら受信終...
-
UDPで受信スループットを測定
-
winsockでファイル転送
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TCP/IP通信時のサーバーからの受信
-
UDP通信におけるbind関数について
-
Winsockで接続待ちタイムアウト...
-
recv関数でフリーズしてしまう
-
VB6のwinsockでconnectできない
-
ソケットのクローズについて
-
UDP通信する時に、相手にどうや...
-
エクセル VBA でのCOMポート...
-
ソケットのrecvの戻り値が0
-
UdpClient 送信元のIPアドレ...
-
Socket通信の0バイト受信について
-
WinSockでの通信プログラムがう...
-
同じLAN内パソコンのIPアドレス...
-
ソケット通信 同じポート番号...
-
VC++でのソケット通信について
-
Connectエラーが出てしまう・・...
-
CreateFile関数でCOMポートが開...
-
Winsockを使わずにVBでSocketを...
-
VB6‥ソケットについて
-
SIPがNATを越えられない理由
おすすめ情報