• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:WinSockを使ってのプリンタ接続・データ送信)

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

このQ&Aのポイント
  • LANで接続されたプリンタに文字列を印字させるためのプログラムを作成していますが、エラーが発生してしまいます。
  • プリンタ側のIPアドレスとポートを設定して印字処理を行いたいが、指定したトランザクションまたは要求のプロトコルまたは接続状態に問題があるというエラーが出ています。
  • プリンタとの接続がうまく行われていない可能性があるため、WinSockを使うのは初めてで苦戦中です。

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

  • ベストアンサー
  • momoturbo
  • ベストアンサー率55% (49/88)
回答No.3

APIを使用するとできます。 ただ、使い慣れるまでちょっと大変かも・・ ちょっと検索したら、以下のところにサンプルが ありました。 winsock api なんかで検索してみてください。 ほとんどがC言語用にかかれているものばかりですけど。 がんばってください。

参考URL:
http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9802/winsock/
BlackCat_1106
質問者

お礼

参考URL先のサンプルを参考にしたらうまくいけました momoturboさん、最後までありがとうございました

その他の回答 (2)

  • momoturbo
  • ベストアンサー率55% (49/88)
回答No.2

>Connectが開始されても一向にイベントが発生せず、原因もわからなかったので省いていました。 TCPの場合Connectのイベントが発生しないということは、 ’つながっていない’ってことです。 TCPの場合、電話のような通信をイメージしてください。 電話をかける->Connectメソット 相手が電話に出る->Connectイベント 話す->SendData この例でいうと相手が受話器を取っていないのに しゃべり始めてるってことです。 UDPの場合は無線みたいな物で、相手が聞いてようがいまいが 関係なくしゃべるということになります。 通信の仕様がTCP・UDPによりプログラムも変わります。 MSDN(ヘルプ)のWinsockコントロールのところを みてください。 簡単な、サンプルものってますよ。 VB6で説明しています

BlackCat_1106
質問者

補足

momoturboさん、再度ご返答ありがとうございます 電話を例えての説明すごくわかりやすかったです 理解できたのは良いのですが、色々と調べているとWinSockコントロールが使用できないことがわかりました。(VBは6.0です) ですので、コントロールを使わずにソケット通信ができれば良いとは思っているのですが、何かご存知ないでしょうか?当初の質問とは違いますが、よろしくお願いします

  • momoturbo
  • ベストアンサー率55% (49/88)
回答No.1

思いつくことを書きます。 ・sckWinsock.ConnectのあとすぐにSendDataを書いても だめだと思います。Winsock1_Connectのイベントのあとに 行ってみてください。できればコマンドボタンのクリック など・・ ・印刷のプロトコルはTCPですか? UDPではないのですか? VB6の場合

BlackCat_1106
質問者

補足

momoturboさん、返答ありがとうございます。 まずWinsock1.Connectのイベント後にSendDataを書いたほうがよろしいとのことですが、前に試していたときはConnectが開始されても一向にイベントが発生せず、原因もわからなかったので省いていました。 記述していたときは以下のとおりにしていました (While文でループを繰り返すだけでした) blnConnect = False Winsock1.Connect While blnConnect = False Then DoEvent Wend Praivate Sub Winsock_Connect() blnConnect = True End Sub それとプロトコルですが、UDPのほうが印刷には適していますか。どちらがよいのかわからず適当にTCPのほうにしていたもので・・・ UDPで挑戦してみます。 できればさらなるアドバイスお願いします (情報が少なすぎなら追記いたします)