Winsockコントロールでデータ受信するには?

解決


みさ  2001-05-15 03:15:29  No: 74333  IP: [192.*.*.*]

VB6.0のWinsockコントロールを貼りつけ、赤外線受信した
データを取得したいのですが、RemoteHostやRemotePortの値を
どう指定すればよいのかわかりません。
どなたかご教授願えませんでしょうか?よろしくお願いします。

編集    削除
ZORO  URL  2001-05-15 20:55:22  No: 74334  IP: [192.*.*.*]

ええと、「受信した」ということは、動かしたいのはサーバー側ですね?
サーバー側はRemoteHost、RemotePortともに使用しません。
サーバー側で設定が必要なのはLocalPortのみです。
最初に初期処理としてCloseを掛けた後に、LocalPortにクライアントと同じポート番号をセットします。
(厳密にはクライアントがサーバーと同じポート番号を使う)
あとはListenで受信待ちするだけです。

編集    削除
みさ  2001-05-24 00:51:21  No: 74335  IP: [192.*.*.*]

遅レス、申し訳ありません。。。

そうです。サーバ側で動かしたいのですが、
サーバ側はWindows2000で、クライアント側はPalmなんです。
サーバ側はUSBで赤外線ポートを接続しています。
ZOROさんのおっしゃる「LocalPortにクライアントと同じ
ポート番号をセットします。」と言うのは、クライアントが
Palmでも有効なのでしょうか?
ちなみに私はPalmについても良くわからないのですが。。。

編集    削除
ogawa  2001-05-24 18:18:58  No: 74336  IP: [192.*.*.*]

自分も、訳の分からない用語だらけで悩みました。
以前、悩みながら作ったプログラムの一部です。

Sub sethconnect(status As Long)
'イーサネットのコネクションを行う
'
status = 0
If Winsock1.state <> sckClosed Then
  Winsock1.Close                   'イーサネットを閉じる
End If
Winsock1.LocalPort = gportno       'ポート番号を設定して
Winsock1.Listen                    '接続待ちにする
Do While Winsock1.state <> sckConnected
  DoEvents                         '接続されるまでループ
Loop
End Sub

設定は基本的には8行目のLocalPortだけす。
設定する値(例ではgportの値)は通信電文の識別番号。
通信電文にはPort番号が付いていて、
LoaclPortで設定したものと一致する電文だけが読み取れます。
送信する時は自動的に付けられます。
従って、通信相手(Paim)と同じ値を設定する必要があります。
(自分もLocalPortの意味がわからず、何を設定すればよいのか困りました。)
通信の設定ができれば、受信割り込みで
  Winsock1.GetData を使って
受信データを読み取ることができます。

編集    削除
みさ  2001-05-31 20:55:45  No: 74337  IP: [192.*.*.*]

また遅レスでごめんなさい。。。
ZOROさん、ogawaさん、ありがとうございます。
どうにか出来そうです。助かりました!!!

編集    削除