網頁文章 網頁文章

Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports Microsoft.VisualBasic

Module Module1


Public Sub Main()

Dim del_file As String = "c:\TestFile5.txt"

Dim msg(40102400) As Byte
Dim server As TcpListener
server = Nothing
Try

Dim port As Int32 = 21
Dim localAddr As IPAddress = IPAddress.Parse("192.168.0.126")

Dim bytes(1024) As Byte
Dim data As String = Nothing

server = New TcpListener(localAddr, port)
server.Start()

While True

Console.Write("Waiting for a connection... ")
Dim client As TcpClient = server.AcceptTcpClient()
Console.WriteLine("Connected!" & ControlChars.CrLf)

Dim clientInfo As IPEndPoint = CType(client.Client.RemoteEndPoint, IPEndPoint)
Console.WriteLine("Client: " + clientInfo.Address.ToString() + ":" + clientInfo.Port.ToString())

Dim stream As NetworkStream = client.GetStream()
Dim strMsg As String

strMsg = "220 .NET FTP Server - (Version 1.0.0) " & "- ready." & ControlChars.CrLf & _
"220 Welcome to .NET FTP Server" & ControlChars.CrLf
msg = Encoding.ASCII.GetBytes(strMsg)
stream.Write(msg, 0, msg.Length)

Dim i As Integer
i = stream.Read(bytes, 0, bytes.Length)

data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
Console.WriteLine("Received: {0}", data)

If ((data.IndexOf("anonymous")) >= 0) Then
strMsg = "331 Password required for PASS" & ControlChars.CrLf
msg = Encoding.ASCII.GetBytes(strMsg)
stream.Write(msg, 0, msg.Length)
End If

i = stream.Read(bytes, 0, bytes.Length)

data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
Console.WriteLine("Received: {0}", data)

If ((data.IndexOf("123456")) >= 0) Then
strMsg = "230 user login" & ControlChars.CrLf
msg = Encoding.ASCII.GetBytes(strMsg)
stream.Write(msg, 0, msg.Length)
End If

i = stream.Read(bytes, 0, bytes.Length)

data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
Console.WriteLine("Received: {0}", data)

If ((data.IndexOf("DELE")) >= 0) Then


If File.Exists(del_file) Then

Dim fileInfo As FileInfo = New FileInfo(del_file)
' File is Read-Only
If fileInfo.Attributes = FileAttributes.ReadOnly Then
Console.WriteLine("550 " & del_file & ": Access is denied.")
Else
' Delete File
File.Delete(del_file)
Console.WriteLine("250 DELE command successful.")
End If
Else
Console.WriteLine("550 " & del_file & ": The system cannot find the file specified.")
End If

strMsg = "200 Command success" & ControlChars.CrLf
msg = Encoding.ASCII.GetBytes(strMsg)
stream.Write(msg, 0, msg.Length)
End If

client.Close()

End While

Catch e As SocketException
Console.WriteLine("SocketException: {0}", e)
Finally
server.Stop()
End Try

Console.WriteLine(ControlChars.Cr + "Hit enter to continue....")

End Sub 'Main

End Module