FreeDNS
FreeDNS
208.67.222.222
208.67.220.220
窗外是被阴云遮挡着的天空,没有风,地上的昨夜的雨遗留下来的积水正静静地倒映着楼房和树木,楼房是灰白的,树木是翠绿的。-2005年
命令行参数允许用户或其他程序向程序传送启动信息。例如:程序名为test.exe,可以运行以下命令:
test.exe /help
在VB6中,可以使用Command属性读取它。在Vb.NET中,它已替换为System.Environment.GetCommandLineArgs函数,该函数返回一组传送的启动参数。
代码如下:
Dim myArg() As String, iCount As Integer
myArg = System.Environment.GetCommandLineArgs
For iCount = 0 To UBound(myArg)
TextBox1.Text = TextBox1.Text & "|" & myArg(iCount).ToString
Next
我的用法如下:
Imports System.Windows.forms
Module Module1
Sub Main()
Dim myArg() As String
Dim icount As Integer
myArg = System.Environment.GetCommandLineArgs
For icount = 0 To UBound(myArg)
MessageBox.Show(myArg(icount).ToString)
Next
End Sub
End Module
运行通过
标签: vb.net 命令行参数
Public Class Form1
' 这个有点不明白,为什么要这么做,
' 个人感觉都不如 xml 好用。
' 以后再研究
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" ( _
ByVal lpApplicationName As String, _
ByVal lpKeyName As String, ByVal lpdefault As String, _
ByVal lpretrunedstring As String, ByVal nSize As Int32, _
ByVal lpFilename As String) As Int32
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" ( _
ByVal lpApplicationName As String, _
ByVal lpKeyName As String, ByVal lpString As String, _
ByVal lpFilename As String) As Int32
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
WritePrivateProfileString("AppName", "KeyB", "MyValue", "C:\a.ini")
WritePrivateProfileString("Port", "value", "11024", "c:\a.ini")
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim strIni As String
strIni = New String(" ", 100)
GetPrivateProfileString("AppName", "KeyB", "", strIni, 100, "c:\a.ini")
MsgBox(strIni)
End Sub
' vb.net 中读写 ini 文件和 vb6 中的做法是一致的,也要使用 Windows Api 的方法
' 唯一要注意的是:在 vb.net 中,api 声明中的 Long 型要改为 int32 类型。
End Class
标签: vb.net ini文件
服务器端:
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports System.Threading
Public Class Form1
Dim s As Socket = Nothing
Dim t As Thread
' 新建一个线程,用于处理收到的Socket 数据包
Public Sub WaitData()
' 使用 TCP 协议
s = New Socket(AddressFamily.InterNetwork, _
SocketType.Stream, ProtocolType.Tcp)
' 定义 IP 和端口
Dim localEndPoint As New IPEndPoint(IPAddress.Parse("127.0.0.1"), 11024)
' 绑定到该 Socket
s.Bind(localEndPoint)
' 侦听,最多接收10个连接
s.Listen(10)
While (True)
' 用来储存接收到的字节
Dim bytes(1024) As Byte
' 若接收到,则创建一个新的 Socket 与之连接
Dim ss As Socket = s.Accept()
MessageBox.Show("ss connected = " & ss.Connected.ToString)
' 接收数据,若用 ss.send(byte()), 则发送数据
ss.Receive(bytes)
' 将其插入到列表的第一项之前
' 以下用法会弹出不安全线程访问错误
'ListBox1.Items.Insert(0, Encoding.Unicode.GetString(bytes))
' 对不带参数的方法的委托
Dim strGetS As String
strGetS = Encoding.Unicode.GetString(bytes)
BeginInvoke(New EventHandler(AddressOf AddInfo), strGetS)
' 若使用 Encoding.ASCII.GetString(bytes), 则接收到的中文字不能显示
End While
End Sub
Private Sub AddInfo(ByVal sender As Object, ByVal e As EventArgs)
ListBox1.Items.Insert(0, "消息>>> " & sender.ToString)
End Sub
Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
' btnStart 的 click 事件中,加入如下代码:
' 建立新的线程
t = New Thread(AddressOf WaitData)
' 启动线程:
t.Start()
' 按钮不可用,避免另起线程
btnStart.Enabled = False
End Sub
Private Sub btnStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStop.Click
' 在BtnStop的click事件中, 加入如下代码
Try
' 关闭 Socket
s.Close()
' 终止线程
t.Abort()
Catch ex As Exception
MessageBox.Show(ex.ToString)
Finally
' 启用按钮
btnStart.Enabled = True
End Try
End Sub
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
' 为了防止用户不点击Stop直接退出,而不能使线程结束,则应在窗体的closing事件中,加入如下代码:
Try
s.Close()
t.Abort()
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
End Sub
End Class
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Public Class Form1
Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click
Try
Dim bytes(1024) As Byte
Dim s As Socket
s = New Socket(AddressFamily.InterNetwork, SocketType.Stream, _
ProtocolType.Tcp)
Dim localEndPoint As New IPEndPoint(IPAddress.Parse("127.0.0.1"), 11024)
s.Connect(localEndPoint)
If Not s.Connected Then
Dim strRetPage As String = "无法连接到远程主机"
MessageBox.Show(strRetPage)
Else
MessageBox.Show("s.Connected is " & s.Connected.ToString & vbCrLf)
s.Send(Encoding.Unicode.GetBytes(TextBox1.Text))
s.Close()
End If
Catch ex As Exception
'MessageBox.Show(ex.ToString)
MessageBox.Show("错、错、错")
End Try
End Sub
End Class
标签: vb.net socket
闲来无事在一部老电脑上写 asp 程序玩,所有的东西统统忘记,放在这里的东西就是希望以后再忘记的时候有可以快速想起的捷径。
以下文字转载于:http://www.netbei.com/Article/asp/asp15/200410/2831.html
CBool函数
描述
返回表达式,此表达式已转换为 Boolean(布尔类型/是否类型) 子类型的 Variant(变量)。
语法
CBool(expression)
expression 是任意有效的表达式。
说明
如 果 expression 是零,则返回 False;否则返回 True。如果 expression 不能解释为数值,则将发生运行时错误。 下面的示例利用 CBool 函数把 expression(表达式) 转换为 Boolean。如果 expression 不为零, CBool 返回 True;否则,返回 False。
Dim A, B, Check
A = 5: B = 5 ' 初始化变量
Check = CBool(A = B) ' check的值为 True
A = 0 '定义变量
Check = CBool(A) '复选框设为 False
Cbyte函数
描述
返回表达式,此表达式已被转换为 Byte(字节类型) 子类型的 Variant。
语法
CByte(expression)
expression 参数是任意有效的表达式。
说明
通常,可以使用子类型转换函数书写代码,以显示某些操作的结果应被表示为特定的数据类型,而不是默认类型。例如,在出现货币、单精度、双精度或整数运算的情况下,使用 CByte 强制执行字节运算。
CByte 函数用于进行从其他数据类型到 Byte 子类型的的国际公认的格式转换。例如对十进制分隔符(如千分符)的识别,可能取决于系统的区域设置。
如果 expression 在 Byte 子类型可接受的范围之外,则发生错误。下面的示例利用 CByte 函数把 expression 转换为 byte:
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble 是一个双精度值
MyByte = CByte(MyDouble) ' MyByte 包含 126
Ccur函数
描述
返回表达式,此表达式已被转换为 Currency 子类型的 Variant。
语法
CCur(expression)
expression 参数是任意有效的表达式。
说明
通常,您可以使用子类型数据转换函数书写代码,以显示某些操作的结果应当被表达为特定的数据类型,而非默认的数据类型。例如在整数运算的情况下,使用 CCur 函数强制进行货币计算。
CCur 函数用于进行从其他数据类型到 Currency 子类型的国际公认的格式转换。例如,对十进制分隔符和千位分隔符的识别取决于系统的区域设置。
下面的示例利用 CCur 函数把 expression 转换为 Currency:
Dim MyDouble, MyCurr
MyDouble = 543.214588 ' MyDouble 是双精度的
MyCurr = CCur(MyDouble * 2) '把 MyDouble * 2 (1086.429176) 的结果转换为
' Currency (1086.4292)
Cdate函数
描述
返回表达式,此表达式已被转换为 Date 子类型的 Variant。
语法
CDate(date)
date 参数是任意有效的日期表达式。
说明
IsDate 函数用于判断 date 是否可以被转换为日期或时间。CDate 识别日期文字和时间文字,以及一些在可接受的日期范围内的数字。在将数字转换为日期时,数字的整数部分被转换为日期,分数部分被转换为从午夜开始计算的时间。
CDate 根据系统的区域设置识别日期格式。如果数据的格式不能被日期设置识别,则不能判断年、月、日的正确顺序。另外,如果长日期格式包含表示星期几的字符串,则不能被识别。
下面例子利用 CDate 函数把字符串转换为日期。通常,建议不要使用硬编码日期和时间(如下例所示)。而要使用日期和时间的文字形式(例如 #10/19/1962#, #4:45:23 PM#)。
MyDate = "October 19, 1962" ' 定义日期
MyShortDate = CDate(MyDate) ' 转换为日期数据类型
MyTime = "4:35:47 PM" ' 定义时间
MyShortTime = CDate(MyTime) ' 转换为日期数据类型
Cdbl函数
描述
返回表达式,此表达式已被转换为 Double 子类型的 Variant。
语法
CDbl(expression)
expression 参数是任意有效的表达式。
说明
通常,您可以使用子类型数据转换函数书写代码,以显示某些操作的结果应当被表达为特定的数据类型,而非默认的数据类型。例如在出现货币或整数运算的情况下,使用 CDbl 或 CSng 函数强制进行双精度或单精度算术运算。
CDbl 函数用于进行从其他数据类型到 Double 子类型的国际公认的格式转换。例如,十进制分隔符和千位分隔符的识别取决于系统的区域设置。下面的示例利用 CDbl 函数把 expression 转换为 Double。
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784) ' MyCurr 是 Currency 型。
MyDouble = CDbl(MyCurr * 8.2 * 0.01) ' 把结果转换为 Double 型。
CInt函数
描述
返回表达式,此表达式已被转换为 Integer 子类型的 Variant。
语法
CInt(expression)
expression 参数是任意有效的表达式。
说明
通常,可以使用子类型转换函数书写代码,以显示某些操作的结果应被表示为特定的数据类型,而不是默认类型。例如,在出现货币、单精度或双精度运算的情况下,使用 CInt 或 CLng 强制执行整数运算。
CInt 函数用于进行从其他数据类型到 Integer 子类型的国际公认的格式转换。例如对十进制分隔符(如千分符)的识别,可能取决于系统的区域设置。
如果 expression 在 Integer 子类型可接受的范围之外,则发生错误。
下面的示例利用 CInt 函数把值转换为 Integer:
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble 是 Double。
MyInt = CInt(MyDouble) ' MyInt 包含 2346。
--------------------------------------------------------------------------------
注意 CInt 与 Fix 和 Int 函数不同,后两者将数字的分数部分截尾取整,而不是四舍五入。当分数部分恰好为 0.5 时,CInt 函数通常将其四舍五入为最接近的偶数。例如,0.5 被四舍五入为 0,而 1.5 被四舍五入为 2。
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
注意 CLng 函数与 Fix 和 Int 函数功能不同,后两者函数对数值的小数部分进行截尾取整而不是四舍五入。当小数部分恰好等于 0.5 时, CLng 函数通常向与此数最接近的偶数取整。例如,0.5 取整为 0、1.5 取整为 2。
--------------------------------------------------------------------------------