いつも参考にしています

現在 VB6+Win2000(sp6)+wsock32.dllにて、ソケットを使用したapを作成しています

WSAStartup

socket

connect

ioctlsocket

send

closesocket

WSACleanup

上記、順にてコーディングしています

このconnectのタイムアウトを設定したいのですが、どのようにすれば良いのでしょうか?

ヒントを御願いします

A 回答 (1件)

winsockのconnectタイムアウトの検出は面倒です。


余計なことですが、Winsockコントロールは使わないのですか?

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=583588
    • good
    • 0
この回答へのお礼

回答ありがとうございます

Winsockコントロールを使用しない理由は、各PC別にセットアップが必要です。
wsock32.dllであれば、各PCにセットアップする必要がなく、ファイルサーバーにAPを複写していれば良いと思っています(PCは、Windows2000なので)

お礼日時:2007/08/08 08:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVB6.0+MyODBC5.0+MySQL4.1にてインサートデータが0になる

VB初心者です。
上記の条件でVB上からDBへインサート文を実行させたのですがMyadminを開いてデータを確認するとデータがすべて0になってしまいます。
因みにインサート文に直接データを代入するとちゃんとDBに登録されます。
OS:WinXP

Dim a AS Integer
Dim b AS Integer
Dim c AS Integer
Private Sub form_load()
Set cn = CreateObject("ADODB.Connection")
cn.Open "dsn=MySQL;uid=root;Pwd="
cn.CursorLocation = 3
a = 1
b = 2
c = 3
cn.BeginTrans
cn.Execute "insert into test values (a, b, c)"
cn.CommitTrans
cn.Close
インサートを変数指定ではなく直接(1, 2, 3)と入れると登録できます。
単純な勘違いを犯しているだけだと思うのですが、どちら様かお知恵を拝借できませんでしょうか?
よろしくお願いいたします。

VB初心者です。
上記の条件でVB上からDBへインサート文を実行させたのですがMyadminを開いてデータを確認するとデータがすべて0になってしまいます。
因みにインサート文に直接データを代入するとちゃんとDBに登録されます。
OS:WinXP

Dim a AS Integer
Dim b AS Integer
Dim c AS Integer
Private Sub form_load()
Set cn = CreateObject("ADODB.Connection")
cn.Open "dsn=MySQL;uid=root;Pwd="
cn.CursorLocation = 3
a = 1
b = 2
c = 3
cn.BeginTrans
cn.Execute "insert into test values (...続きを読む

Aベストアンサー

"insert into test values (a, b, c)"
は文字列なので、変数a,b,cを指定したことにはなりません。
"insert into test values (aaaa, bbbb, cccc)"
でも同じ結果になるはず。

"insert into test values (" & a & "," & b & "," & c & ")"
としてみて下さい。

QsendkeysにてALT+CTRL+INSERTを同時に行いたい

VBScripptのsendkeysにてALT+CTRL+INSERTを同時に行いたい

下記にて、行いましたが、うまくいきません
SendKeys "%^{INSERT}"

どなたかヒントを御願いします
→3つのキーは同時にできない?

Aベストアンサー

私のWindows XPでは三つのキーでも問題ないようです。推定ですがAppActivateが上手くいっていないのではないでしょうか。

【やってみたこと1】
秀丸でAlt+Ctrl+Insを行番号表示/非表示に割り当てて、下のWSH VBScriptを実行してみた。行番号表示がトグルできた。

set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate "新規" '新規に秀丸を開いておき、それをAppActivate
WshShell.SendKeys "%^{INSERT}"

【やってみたこと2】
デスクトップのプログラムのショートカットのプロパティのショートカットキーにCtrl+Alt+Insertを割り当てて、下のWSH VBScriptを実行してみた。プログラムが起動できた。秀丸の割り当てよりも優先されるのでAppActivateは不要なようだ。

set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "^%{INSERT}"

私のWindows XPでは三つのキーでも問題ないようです。推定ですがAppActivateが上手くいっていないのではないでしょうか。

【やってみたこと1】
秀丸でAlt+Ctrl+Insを行番号表示/非表示に割り当てて、下のWSH VBScriptを実行してみた。行番号表示がトグルできた。

set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate "新規" '新規に秀丸を開いておき、それをAppActivate
WshShell.SendKeys "%^{INSERT}"

【やってみたこと2】
デスクトップのプログラムのショートカットの...続きを読む

Qwininet.dllとwsock32.dllについて

クライアントのVBAから、サーバにHTTPで文字データを送信しようとしています。

1. WinAPIの"InternetOpenURL"(wininet.dll)が使えると思いましたが、MSDNLibraryではWinCE用と英語で言っているようでした。W2Kの自PCにも上記DLLは入っていますが、W2Kで使うのは一般的ではないのでしょうか?

2. クライアントのIPアドレスも送信したいので、wsock32.dllのAPIで取得しようとしています。wininetやwsock32が、いつインストールされるものなのか(OS入れた時か、Officeか、IEか等)を調べる手段はあるでしょうか?また、MS社以外の製品によって、これらのDLLがアップデートされてしまうことは通常ないと考えていてよいものでしょうか?

ご教授下さいますよう、よろしくお願いします。

Aベストアンサー

1, もしかしてCE .Net用のMSDNのページを見ていませんか?
http://msdn.microsoft.com/library/en-us/wcewinet/html/cerefinternetopenurl.asp
普通はこちらです。
http://msdn.microsoft.com/library/en-us/wininet/wininet/internetopenurl.asp

IE3.0以降がインストールされたWin95以降、WinNT4.0以降が対象のようです。

2. wininet.dllは元から入っているか、IE3.0以降を入れることでインストールされるらしいです。
wsock32.dllはさらに低レベルの物ですから、それ以前にインストールされているでしょうね。
どちらにしろ現在このdllが入っていない稼動状態のWindowsはほぼ無いと思います。

> MS社以外の製品によって、これらのDLLが
ウイルスとか。
真っ当なソフトなら多分そんなことはしないでしょう。
そもそもライセンスは大丈夫か?って気がしますし。

1, もしかしてCE .Net用のMSDNのページを見ていませんか?
http://msdn.microsoft.com/library/en-us/wcewinet/html/cerefinternetopenurl.asp
普通はこちらです。
http://msdn.microsoft.com/library/en-us/wininet/wininet/internetopenurl.asp

IE3.0以降がインストールされたWin95以降、WinNT4.0以降が対象のようです。

2. wininet.dllは元から入っているか、IE3.0以降を入れることでインストールされるらしいです。
wsock32.dllはさらに低レベルの物ですから、それ以前にインストールされているでし...続きを読む

QRange("A" & x) + Range("A" & x+1) +

Range("A" & x) + Range("A" & x+1) + Range("A" & x+2) + ・・・ + Range("A" & x+n)

x:変数(基準点)
n:定数(A列のセルをいくつ足し併せるか、を指定。)


上記プログラムをループ的に行うには、どういう書き方をすれば良いでしょうか?
Do ~ Loop 文 などを使うのでしょうか。

お詳しい方、教えて下さい。
必ずお返事致します。

Aベストアンサー

>上記プログラムをループ的に行うには、どういう書き方をすれば良いでしょうか?
>Do ~ Loop 文 などを使うのでしょうか。
との質問には、#1のuruzさんが言われているように、For Nextが適していると思います。

ただ回す考え自体を除外してもよいのであれば、Sum関数を利用した方が、エリアが広い時は高速に処理を行う事が出来ます。


Option Explicit

Private Const x As Long = 1
Private Const N定数 As Long = 65535

Sub Test()
  Dim dbl1 As Double
  Dim dbl2 As Double
  Dim cur結果

  '----------------
  ' 検証1(回す)
  '----------------
  dbl1 = Now
  cur結果 = サンプル1(N定数)
  dbl2 = Now
  MsgBox "サンプル1(回す):" & cur結果 & vbTab & "計測時間" & dbl2 - dbl1

  '----------------
  ' 検証2(Sum)
  '----------------
  dbl1 = Now
  cur結果 = サンプル2(N定数)
  dbl2 = Now
  MsgBox "サンプル2(Sum):" & cur結果 & vbTab & "計測時間" & dbl2 - dbl1
End Sub

Function サンプル1(n As Long) As Currency
  Dim i As Long
  For i = 0 To n
    サンプル1 = サンプル1 + Range("A" & x + i)
  Next i
End Function

Function サンプル2(n As Long) As Currency
  Dim rng始点 As Range
  Dim rng終点 As Range
  Dim rng範囲 As Range
  
  Set rng始点 = Range("A" & x)
  Set rng終点 = rng始点.Offset(n)
  
  Set rng範囲 = Range(rng始点, rng終点)
  サンプル2 = WorksheetFunction.Sum(rng範囲)
End Function

>上記プログラムをループ的に行うには、どういう書き方をすれば良いでしょうか?
>Do ~ Loop 文 などを使うのでしょうか。
との質問には、#1のuruzさんが言われているように、For Nextが適していると思います。

ただ回す考え自体を除外してもよいのであれば、Sum関数を利用した方が、エリアが広い時は高速に処理を行う事が出来ます。


Option Explicit

Private Const x As Long = 1
Private Const N定数 As Long = 65535

Sub Test()
  Dim dbl1 As Double
  Dim dbl2 As Double
  Dim cur結果

  '...続きを読む

Q4桁の数字を A*1000+B*100+C*10+D 以外で表現したい。

A=1
B=2
C=3
D=4

のとき 
1234をA*1000+B*100+C*10+D以外で表現したいのですが
何かいい方法がないでしょうか?
4桁ならいいんですが
15、6桁を10行ぐらいコーディングしないといけないのでなえてます↓助けてください。

Aベストアンサー

No.4です。

VB2005でも問題なくできますよ。実際に確認済みです。

Dim A As Integer = 1
Dim B As Integer = 2
Dim C As Integer = 3
Dim D As Integer = 4
Dim E As integer

E = (A & B & C & D) * 1
MsgBox(E)

これで試してください。


このカテゴリの人気Q&Aランキング

おすすめ情報