
現在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を使うのは初めてなので勝手がわからなく苦戦中です
どなたかわかる方、お返事お待ちしています
No.3ベストアンサー
- 回答日時:
APIを使用するとできます。
ただ、使い慣れるまでちょっと大変かも・・
ちょっと検索したら、以下のところにサンプルが
ありました。
winsock api なんかで検索してみてください。
ほとんどがC言語用にかかれているものばかりですけど。
がんばってください。
参考URL:http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/98 …
No.2
- 回答日時:
>Connectが開始されても一向にイベントが発生せず、原因もわからなかったので省いていました。
TCPの場合Connectのイベントが発生しないということは、
’つながっていない’ってことです。
TCPの場合、電話のような通信をイメージしてください。
電話をかける->Connectメソット
相手が電話に出る->Connectイベント
話す->SendData
この例でいうと相手が受話器を取っていないのに
しゃべり始めてるってことです。
UDPの場合は無線みたいな物で、相手が聞いてようがいまいが
関係なくしゃべるということになります。
通信の仕様がTCP・UDPによりプログラムも変わります。
MSDN(ヘルプ)のWinsockコントロールのところを
みてください。
簡単な、サンプルものってますよ。
VB6で説明しています
この回答への補足
momoturboさん、再度ご返答ありがとうございます
電話を例えての説明すごくわかりやすかったです
理解できたのは良いのですが、色々と調べているとWinSockコントロールが使用できないことがわかりました。(VBは6.0です)
ですので、コントロールを使わずにソケット通信ができれば良いとは思っているのですが、何かご存知ないでしょうか?当初の質問とは違いますが、よろしくお願いします
No.1
- 回答日時:
思いつくことを書きます。
・sckWinsock.ConnectのあとすぐにSendDataを書いても
だめだと思います。Winsock1_Connectのイベントのあとに
行ってみてください。できればコマンドボタンのクリック
など・・
・印刷のプロトコルはTCPですか?
UDPではないのですか?
VB6の場合
この回答への補足
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で挑戦してみます。
できればさらなるアドバイスお願いします
(情報が少なすぎなら追記いたします)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルを開くと、「プリンタ...
-
エクセルでユーザー定義サイズ...
-
Windows システムログ ID:8021...
-
プリンタの共有使用ができませ...
-
ネットワーク内のプリンタ等のI...
-
PC2台でプリンタ1台をUSB自動切...
-
NASでのプリンタ共有方法
-
異なるLANにあるネットワークプ...
-
ネットワークプリンタ入替にお...
-
ネットワークプリンタ:プリン...
-
プリンターない場合のエクセル...
-
ネットワークプリンタに接続で...
-
会社のネットワークプリンター...
-
Local Potr と Standard TCP/IP...
-
デフォルトゲートウェイとは?...
-
WinSockを使ってのプリンタ接続...
-
IPアドレスが書き変わる。
-
このネットワークを使うには手...
-
PC起動時、いつもネットが切断...
-
別セグメントADへのドメイン参加
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルを開くと、「プリンタ...
-
プリンタに固定ipアドレスを割...
-
ネットワークプリンタに接続で...
-
ネットワークプリンタ:プリン...
-
LANケーブルを直接PC接続しても...
-
EXCELネットワークプリン...
-
異なるLANにあるネットワークプ...
-
VPN中でも自宅のwifiプリンタに
-
デフォルトゲートウェイとは?...
-
エクセルでユーザー定義サイズ...
-
ドメインに参加せずにプリンタ...
-
マックでのプリンターIPアドレ...
-
Local Potr と Standard TCP/IP...
-
VB.NETからExcelを開きプリンタ...
-
IPで違うネットワークアドレス...
-
ネットワークプリンタで「共有...
-
外部から会社のプリンタを利用...
-
USBポートとLPTポート
-
NASでのプリンタ共有方法
-
プリンタドライバに設定したIP...
おすすめ情報