C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 29 を表示中)
■13802 / )  WinsockのInitialize処理
□投稿者/ もーもー (1回)-(2008/02/05(Tue) 09:29:53)

分類:[.NET 全般] 

VB.NET2003で、Winsockを使用したネットワーク通信のプログラムを作成しているのですが、
WinsockのInitialize処理をBeginInit()とEndInit()で行っています。

MSDNを参照した限りでは、EndInit()メソッドを使用すると、
完全に初期化が完了するまで使用できないとあります。

初期化が完了したタイミングを知る方法はありますでしょうか?
Initialize処理が完了していない為に、WinsockのLocalPort設定時に以下の様なエラーが発生します。

よろしくお願いします。

エラーメッセージ内容:
-----------------------------------------------------------------
種類 InvalidActiveXStateException の例外がスローされました。
現時点では 'LocalPort' の set プロパティを呼び出せません。
-----------------------------------------------------------------
ソース内容:
-----------------------------------------------------------------
Public WithEvents Winsock1 As AxMSWinsockLib.AxWinsock
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.Winsock1 = New AxMSWinsockLib.AxWinsock
CType(Me.Winsock1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'Winsock1
'
Me.Winsock1.ContainingControl = Me
Me.Winsock1.Enabled = True
Me.Winsock1.Location = New System.Drawing.Point(284, 0)
Me.Winsock1.Name = "Winsock1"
Me.Winsock1.Size = New System.Drawing.Size(28, 28)

Me.Winsock1.TabIndex = 12
CType(Me.Winsock1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub

Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
Winsock1.LocalPort = xxxx (←Integer変数を代入:ここでエラー発生)
Winsock1.Listen()
    Catch ex As Exception
MsgBox(ex.Message & Chr(13) & _
ex.ToString)
Ent Try
End Sub
-----------------------------------------------------------------

返信 編集キー/


管理者用

- Child Tree -