• ベストアンサー

winsockというオブジェクト

VB6でwinsockというオブジェクトを使っていて、 tcpClient.Protocol tcpClient.LocalPort tcpClient.RemoteHost tcpClient.RemotePort というコマンドを使うのですが、 これらを記述したコマンドを標準モジュールに記述すると動作しません。 通常のフォームに記述したら動作するのですが、 他のソフトでも使うので標準モジュールに記述したいです。 このようなことは出来ますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • uruz
  • ベストアンサー率49% (417/840)
回答No.3

WinsockコントロールをtcpClientという名前でForm1に貼り付けている場合はtcpClientはForm1の配下にありますのでtcpClient.Protocolを標準モジュールに記述する場合は Form1.tcpClient.Protocol とする必要があります。 フォームに記述した場合はForm1.が省略可能なだけです。

miya2004
質問者

お礼

ありがとうございます。 時間があるときに試します。 これが正しいような気がします。

その他の回答 (2)

  • x-1919
  • ベストアンサー率52% (91/173)
回答No.2

もしかして Winsock コントロールを使ってませんか? コントロールなので Form に貼り付けないと使えなかったと思います。 別掲示板の情報なので規約に違反するかもしれませんが、以下の情報はどうでしょうか。 http://www.gizcollabo.jp/vbtomo/log/archive/vbqanda_36_3.html

参考URL:
http://www.gizcollabo.jp/vbtomo/log/archive/vbqanda_36_3.html
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

プロシージャはPublicで宣言してますか?

関連するQ&A

  • VB.NetのWinsockについて

    VB6.0の時は LocalPortとRemotePortを別々に設定できましたが VB.Netの場合LocalPortとRemotePortを別々に設定するのはどうすればよいのえしょうか? 'リモートホストと接続します。 objTcpClient = New Net.Sockets.TcpClient() 'objTcpClient.Connect("localhost", intPortNo) objTcpClient.Connect("127.0.0.1",5000) '<<リモートポート                          '<<ローカルはどう設定すればよいの? へんな質問ですがよろしくお願いいたします。

  • Winsockのオブジェクトエラー

    こんにちは。EXCEL2000・VBAで、Winsockの使用を考えています。 以下のソースコードを入力して、実行してもオブジェクトが見つかりませんという、エラーが出力されてしまいます。 また、Winsockをアクティブにしようと、 User FormにWinsockのアイコンを追加しようとしても 「サブジェクトは指定された操作に対して信頼されません」 という注意書きがでてしまって、追加できません。 なぜ、このようになるのか、教えていただけますか? よろしくお願いします。 Private Sub CommandButton1_Click() Winsock1.RemoteHost "www.yahoo.co.jp" Winsock1.RemotePort 80 Winsock1.Connect End Sub Private Sub CommandButton2_Click() Winsock1.SendData = TextBox1.Value End Sub Private Sub CommandButton3_Click() Winsock1.Close End Sub

  • Winsockで、localhostに接続時、10061エラー、コンピューター名ならOk

    VB6.0(SP5)で、TCP/IPの通信を作成しています 開発環境は、Windows2000(SP4) 実行環境は、WindowsXP Home(sp2)です Winsockコントロールに以下の値を設定していますが接続時にエラー:WSAECONNREFUSED 10061 Connection refusedを返します .LocalPort = 0 .RemoteHost = "localhost" .RemotePort = 2010 .Connect (.RemoteHost = "127.0.0.1"でも同じです) しかし、 .RemoteHost = "192.168.0.110" 自身のIPアドレス .RemoteHost = "COMP01" 自身のコンピューター名 を指定した場合エラーとなりません 何かアドバイスを頂ければお願いします

  • Winsockの使い方

    Winsockを使用して、ネットワーク上でデータのやり取りを考えています。 フォーム上でのsendData,DataArrivalは上手くいきました。そこで、今度は標準モジュール上でsendDataを記述してできないかを試しているのですが、「メソッド失敗」で上手くいきません。 もし分かる方がいましたら、是非おしえてください。

  • WinSockを使ってのプリンタ接続・データ送信

    現在LANで接続されたプリンタに文字列を印字させるプログラムを作成しているのですが、プリンタ側のIPアドレス、使用するポート(今回は1024という指定があったのでそれに設定)を設定し、印字処理をはしらせたのですが、そこでエラーが発生してしまいます。簡略化していますが、プログラムは Private sckWinsock As Winsock Set sckWinsock = Winsock1 sckWinsock.Protocol = sckTCPProtocol sckWinsock.RemoteHost = "192.168.0.***" sckWinsock.RemotePort = 1024 sckWinsock.LocalPort = 0 sckWinsock.Connect strData = "テスト印字" sckWinsock.SendData strData sckWinsock.Close エラーは sckWinsock.SendData strData ここで発生し、『指定したトランザクションまたは要求のプロトコルまたは接続状態に問題があります。』とでます。 PINGはちゃんと通りますし、プリンタ設定にあるテスト印字は問題なく機能するので、プリンタとの接続がまずいとは思えないのですが・・・ WinSockを使うのは初めてなので勝手がわからなく苦戦中です どなたかわかる方、お返事お待ちしています

  • winsock通信時エラーの回避

    winsock通信でデータをクライアント側からサーバー側に送り、一定の条件でサーバー側からクライアント側にデータを戻すソフトを作成中なのですが、サーバー側が通信エラーの為か止まってしまいます。 サーバー側(winsock部分)記述 Private Sub Winsock1_Error(Index As Integer, ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean) Winsock1(Index).Close '接続を閉じる Do While Not (Winsock1(Index).State = sckClosed) DoEvents Loop On Error Resume Next Winsock1(Index).Listen If Winsock1(Index).LocalPort <> 0 Then Winsock1(Index).LocalPort = 0 End If End Sub 質問の整理ですが、 表示板にはギミックが付いておりそのギミックは止まらないのでパソコンのフリーズでは無い様子です。 で問題は通信部分だと推測されるのですが、そのエラーを起こした通信を破棄してもいいので、サーバー側の点数加算を止めない方法はありませんでしょうか。 また上記のWinsock1_Errorコードの記述じゃおかしいのでしょうか。

  • VBのフォームモジュールと標準モジュールの使い分け

    VBのフォームモジュールと標準モジュールの使い分けが今一つわかっていません。 フォームモジュールとは、フォーム(画面)上で起こったイベント(例えば、ボタンをクリックした時とか、ユーザーが行を選択したりだとか)の処理を、記述するところと解釈しています。 標準モジュールは、フォームが2つ以上あって、その2つが共通する処理(関数)などを、記述したり、フォームが1つでも、同じ処理を繰り返す場合、その処理を標準モジュールに書いたり・・・・という解釈をしています。 あってますでしょうか? フォームが一つしかない場合、もしくは2つあっても、あまり共通する処理がない場合、なんかは標準モジュールはあまり使わないのでしょうか? それとも、フォームが1つとかでも、今後のメンテの事など考慮して、標準モジュールを作ってそこにグローバル変数なんかで処理を書いた方がよいのでしょうか? どなたか、教えてくださいませんか? いろいろBBSなどで見てみるんですが、いろいろ書いてあって、どれが理想か わかりません。よろしくお願いいたします。

  • VBとVBAのコードの違い プロシージャー呼び出し方法

    何度かお世話になっておりおります 毎回アドバイスありがとうございます 早速なのですがまた躓いてしまいアドバイスお願いします。 ~質問内容~ 標準モジュールからフォームのプロシージャーを呼び出す エラー内容 オブジェクトが必要である       オブジェクト修飾が必要など 出てきました オブジェクト修飾 というのが もう理解出来ず 本当にスタートの時点ではありますが アドバイスお願いします VBのコード 標準モジュール Sub Main() MainForm.Initialize End Sub フォームのコード Public Sub initialize()  ”コード内容”  End Sub ↑上記で記入しました フォームで宣言されているInitialize を呼び出したいのですが VBでは このままで出来るはずなのですが VBAでは オブジェクト修飾が必要です CALL をつけても エラーのままでした 少し質問がわかりにくくなってしまいましたが 標準モジュールから フォームのプロシージャーを呼び出すには なんと入れれば宜しいでしょうか? アドバイスお願いします

  • VBAでマルチページの表示

    エクセル2002使用です。 ユーザーフォーム(オブジェクト名:UserForm1)に、マルチページ(オブジェクト名:page1)を配置してフォームを作成しました。 Sheet1にコマンドボタンを貼り付け、コマンドボタンをクリックして、標準モジュールを呼び出し、マルチページを標準モジュールから呼び出せるようにしたいのですがうまくいきません。 ’Sheet1 Private Sub CommandButton1_Click() Call フォーム表示 End Sub ’標準モジュール Sub フォーム表示() UserForm1.Show ’?ここのコードをいろいろ試したのですがわかりません。 End Sub この他 UserForm1.ShowPages "page1" とか 変数を入れてみたりしたのですが、うまくいきません。 すいませんが、よろしくお願いします。

  • VB.netについて質問です。(2つ)

    まず、コンパイルのやり方がわかりません。 VB6.0を今まで学習していました。VB6.0だったら、 メニューバー→実行ファイル作成(*.exe) …で、できたのですがVB.netにはなかったです。 MSDNを拝見したら、コマンドから コンパイルするような事が記載されていたんですが 見ながらやっても、さっぱりです。 実際の具体例を教えていただけないでしょうか? VB6.0の場合、ネットワーク通信を行う際… Winsockというオブジェクトを使って通信を行いましたが VB.netの場合、どのオブジェクトが該当するのでしょうか? インストールした段階なので、標準のオブジェクトに 無い場合は、コンポーネントからインポート(?)するような 方法も教えてください。 よろしくお願いします。(^^)

専門家に質問してみよう