|
分類:[.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 -----------------------------------------------------------------
|