home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic 4 Unleashed / Visual_Basic_4_Unleashed_SAMS_Publishing_1995.iso / swrench / tcpecho.frm < prev    next >
Text File  |  1995-07-24  |  14KB  |  512 lines

  1. VERSION 2.00
  2. Begin Form MainForm 
  3.    BackColor       =   &H00C0C0C0&
  4.    BorderStyle     =   3  'Fixed Double
  5.    Caption         =   "Echo"
  6.    ClientHeight    =   4050
  7.    ClientLeft      =   1905
  8.    ClientTop       =   1950
  9.    ClientWidth     =   7095
  10.    FontBold        =   0   'False
  11.    FontItalic      =   0   'False
  12.    FontName        =   "MS Sans Serif"
  13.    FontSize        =   8.25
  14.    FontStrikethru  =   0   'False
  15.    FontUnderline   =   0   'False
  16.    Height          =   4740
  17.    Left            =   1845
  18.    LinkTopic       =   "Form1"
  19.    ScaleHeight     =   4050
  20.    ScaleWidth      =   7095
  21.    Top             =   1320
  22.    Width           =   7215
  23.    Begin Socket Socket2 
  24.       Backlog         =   1
  25.       Binary          =   -1  'True
  26.       Blocking        =   -1  'True
  27.       Broadcast       =   0   'False
  28.       BufferSize      =   0
  29.       HostAddress     =   ""
  30.       HostFile        =   ""
  31.       HostName        =   ""
  32.       InLine          =   0   'False
  33.       Interval        =   0
  34.       KeepAlive       =   0   'False
  35.       Left            =   600
  36.       Linger          =   0
  37.       LocalPort       =   0
  38.       LocalService    =   ""
  39.       Peek            =   0   'False
  40.       Protocol        =   0
  41.       RecvLen         =   0
  42.       RemotePort      =   0
  43.       RemoteService   =   ""
  44.       ReuseAddress    =   0   'False
  45.       Route           =   -1  'True
  46.       SendLen         =   0
  47.       TabIndex        =   15
  48.       Timeout         =   0
  49.       Top             =   3480
  50.       Type            =   1
  51.       Urgent          =   0   'False
  52.    End
  53.    Begin Socket Socket1 
  54.       Backlog         =   1
  55.       Binary          =   -1  'True
  56.       Blocking        =   -1  'True
  57.       Broadcast       =   0   'False
  58.       BufferSize      =   0
  59.       HostAddress     =   ""
  60.       HostFile        =   ""
  61.       HostName        =   ""
  62.       InLine          =   0   'False
  63.       Interval        =   0
  64.       KeepAlive       =   0   'False
  65.       Left            =   120
  66.       Linger          =   0
  67.       LocalPort       =   0
  68.       LocalService    =   ""
  69.       Peek            =   0   'False
  70.       Protocol        =   0
  71.       RecvLen         =   0
  72.       RemotePort      =   0
  73.       RemoteService   =   ""
  74.       ReuseAddress    =   0   'False
  75.       Route           =   -1  'True
  76.       SendLen         =   0
  77.       TabIndex        =   14
  78.       Timeout         =   0
  79.       Top             =   3480
  80.       Type            =   1
  81.       Urgent          =   0   'False
  82.    End
  83.    Begin CommandButton CancelButton 
  84.       Caption         =   "Cancel"
  85.       Height          =   375
  86.       Left            =   4080
  87.       TabIndex        =   11
  88.       Top             =   3480
  89.       Width           =   1215
  90.    End
  91.    Begin CommandButton ActionButton 
  92.       Caption         =   "Connect"
  93.       Height          =   375
  94.       Left            =   1800
  95.       TabIndex        =   10
  96.       Top             =   3480
  97.       Width           =   1215
  98.    End
  99.    Begin TextBox SocketInput 
  100.       BackColor       =   &H00C0C0C0&
  101.       Height          =   285
  102.       Left            =   120
  103.       TabIndex        =   9
  104.       Top             =   3000
  105.       Width           =   6855
  106.    End
  107.    Begin ListBox SocketOutput 
  108.       BackColor       =   &H00C0C0C0&
  109.       FontBold        =   0   'False
  110.       FontItalic      =   0   'False
  111.       FontName        =   "Courier New"
  112.       FontSize        =   9.75
  113.       FontStrikethru  =   0   'False
  114.       FontUnderline   =   0   'False
  115.       Height          =   1230
  116.       Left            =   120
  117.       TabIndex        =   8
  118.       Top             =   1680
  119.       Width           =   6855
  120.    End
  121.    Begin Frame ServiceFrame 
  122.       BackColor       =   &H00C0C0C0&
  123.       Caption         =   "Service"
  124.       Height          =   1455
  125.       Left            =   3600
  126.       TabIndex        =   13
  127.       Top             =   120
  128.       Width           =   3375
  129.       Begin SpinButton Spin1 
  130.          Delay           =   150
  131.          Height          =   285
  132.          Left            =   1560
  133.          Top             =   840
  134.          Width           =   255
  135.       End
  136.       Begin TextBox ServicePort 
  137.          BackColor       =   &H00C0C0C0&
  138.          Height          =   285
  139.          Left            =   840
  140.          TabIndex        =   7
  141.          Top             =   840
  142.          Width           =   735
  143.       End
  144.       Begin TextBox ServiceName 
  145.          BackColor       =   &H00C0C0C0&
  146.          Height          =   285
  147.          Left            =   840
  148.          TabIndex        =   5
  149.          Top             =   480
  150.          Width           =   2175
  151.       End
  152.       Begin Label Label4 
  153.          BackStyle       =   0  'Transparent
  154.          Caption         =   "&Port:"
  155.          Height          =   255
  156.          Left            =   120
  157.          TabIndex        =   6
  158.          Top             =   840
  159.          Width           =   495
  160.       End
  161.       Begin Label Label3 
  162.          BackStyle       =   0  'Transparent
  163.          Caption         =   "&Name:"
  164.          Height          =   255
  165.          Left            =   120
  166.          TabIndex        =   4
  167.          Top             =   480
  168.          Width           =   615
  169.       End
  170.    End
  171.    Begin Frame RemoteFrame 
  172.       BackColor       =   &H00C0C0C0&
  173.       Caption         =   "System"
  174.       Height          =   1455
  175.       Left            =   120
  176.       TabIndex        =   12
  177.       Top             =   120
  178.       Width           =   3375
  179.       Begin ComboBox Hostname 
  180.          BackColor       =   &H00C0C0C0&
  181.          Height          =   300
  182.          Left            =   1200
  183.          Sorted          =   -1  'True
  184.          TabIndex        =   1
  185.          Top             =   480
  186.          Width           =   1935
  187.       End
  188.       Begin TextBox IPAddress 
  189.          BackColor       =   &H00C0C0C0&
  190.          Height          =   285
  191.          Left            =   1200
  192.          TabIndex        =   3
  193.          Top             =   840
  194.          Width           =   1575
  195.       End
  196.       Begin Label Label2 
  197.          BackStyle       =   0  'Transparent
  198.          Caption         =   "IP &Address:"
  199.          Height          =   255
  200.          Left            =   120
  201.          TabIndex        =   2
  202.          Top             =   840
  203.          Width           =   1095
  204.       End
  205.       Begin Label Label1 
  206.          BackStyle       =   0  'Transparent
  207.          Caption         =   "&Hostname:"
  208.          Height          =   255
  209.          Left            =   120
  210.          TabIndex        =   0
  211.          Top             =   480
  212.          Width           =   975
  213.       End
  214.    End
  215.    Begin Menu FileMenu 
  216.       Caption         =   "&File"
  217.       Begin Menu ExitApp 
  218.          Caption         =   "E&xit"
  219.       End
  220.    End
  221.    Begin Menu OptionsMenu 
  222.       Caption         =   "&Options"
  223.       Begin Menu ServerOption 
  224.          Caption         =   "Echo Server"
  225.       End
  226.    End
  227. End
  228.  
  229. Sub ActionButton_Click ()
  230.     If Not Socket1.Connected Then
  231.         On Error Resume Next
  232.         HostName.Text = Trim$(HostName.Text)
  233.         If Len(HostName.Text) > 0 Then
  234.             Socket1.HostName = HostName.Text
  235.             IPAddress.Text = Socket1.HostAddress
  236.         Else
  237.             Socket1.HostAddress = Trim$(IPAddress.Text)
  238.             HostName.Text = Socket1.HostName
  239.         End If
  240.         ServiceName.Text = Trim$(ServiceName.Text)
  241.         If Len(ServiceName.Text) > 0 Then
  242.             Socket1.RemoteService = ServiceName.Text
  243.             ServicePort.Text = Trim$(Str$(Socket1.RemotePort))
  244.         Else
  245.             Socket1.RemotePort = Val(Trim$(ServicePort.Text))
  246.             ServiceName.Text = Socket1.RemoteService
  247.         End If
  248.         Socket1.Action = SOCKET_CONNECT
  249.         If Err <> 0 Then Exit Sub
  250.         ActionButton.Enabled = False
  251.         ActionButton.Default = False
  252.     Else
  253.         Socket1.Action = SOCKET_CLOSE
  254.         ActionButton.Caption = "Connect"
  255.         ActionButton.Default = True
  256.         HostName.SetFocus
  257.     End If
  258.     Exit Sub
  259. End Sub
  260.  
  261. Sub CancelButton_Click ()
  262.     Unload MainForm
  263. End Sub
  264.  
  265. Sub ExitApp_Click ()
  266.     Unload MainForm
  267. End Sub
  268.  
  269. Sub Form_Load ()
  270.     '
  271.     ' Initialize the socket control
  272.     '
  273.     Socket1.AddressFamily = AF_INET
  274.     Socket1.Binary = False
  275.     Socket1.Blocking = False
  276.     Socket1.BufferSize = 1024
  277.     Socket1.Protocol = IPPROTO_IP
  278.     Socket1.Type = SOCK_STREAM
  279.     Socket1.RemoteService = "echo"
  280.  
  281.     Socket2.AddressFamily = AF_INET
  282.     Socket2.Binary = True
  283.     Socket2.Blocking = False
  284.     Socket2.HostAddress = INADDR_ANY
  285.     Socket2.Protocol = IPPROTO_IP
  286.     Socket2.Type = SOCK_STREAM
  287.     Socket2.LocalService = "echo"
  288.     
  289.     '
  290.     ' Initialize hostname combo box
  291.     '
  292.     On Error Resume Next
  293.     Socket1.HostFile = "HOSTS"
  294.     If Err = 0 Then
  295.         Host$ = Socket1.GetFirstHost
  296.         While Host$ <> ""
  297.             HostName.AddItem Host$
  298.             Host$ = Socket1.GetNextHost
  299.         Wend
  300.     End If
  301.     Socket1.HostFile = ""
  302.  
  303.     '
  304.     ' Initialize the other controls
  305.     '
  306.     ActionButton.Caption = "Connect"
  307.     ActionButton.Default = True
  308.     ActionButton.Enabled = False
  309.     ServiceName.Text = Socket1.RemoteService
  310.     ServicePort.Text = Trim$(Str$(Socket1.RemotePort))
  311. End Sub
  312.  
  313. Sub Form_Unload (Cancel As Integer)
  314.     If Socket1.Connected Then Socket1.Action = SOCKET_CLOSE
  315.     If Socket2.Listening Or Socket2.Connected Then Socket2.Action = SOCKET_CLOSE
  316.     End
  317. End Sub
  318.  
  319. Sub Hostname_Change ()
  320.     If Len(HostName.Text) > 0 Or Len(IPAddress.Text) > 0 Then
  321.         ActionButton.Enabled = True
  322.     Else
  323.         ActionButton.Enabled = False
  324.     End If
  325. End Sub
  326.  
  327. Sub Hostname_Click ()
  328.     On Error Resume Next
  329.     Socket1.HostName = Trim(HostName.Text)
  330.     IPAddress.Text = Socket1.HostAddress
  331.     If Err = WSANO_DATA Then IPAddress.Text = ""
  332.     Exit Sub
  333. End Sub
  334.  
  335. Sub Hostname_GotFocus ()
  336.     HostName.SelStart = 0
  337.     HostName.SelLength = Len(HostName.Text)
  338. End Sub
  339.  
  340. Sub Hostname_LostFocus ()
  341.     Hostname_Click
  342. End Sub
  343.  
  344. Sub IPAddress_Change ()
  345.     If Len(HostName.Text) > 0 Or Len(IPAddress.Text) > 0 Then
  346.         ActionButton.Enabled = True
  347.     Else
  348.         ActionButton.Enabled = False
  349.     End If
  350. End Sub
  351.  
  352. Sub IPAddress_GotFocus ()
  353.     IPAddress.SelStart = 0
  354.     IPAddress.SelLength = Len(IPAddress.Text)
  355. End Sub
  356.  
  357. Sub IPAddress_LostFocus ()
  358.     On Error Resume Next
  359.     
  360.     Socket1.HostAddress = Trim(IPAddress.Text)
  361.     HostName.Text = Socket1.HostName
  362.     If Err = WSANO_DATA Then
  363.         MsgBox "That IP address is invalid"
  364.         Socket1.HostAddress = ""
  365.     End If
  366.     Exit Sub
  367. End Sub
  368.  
  369. Sub ServerOption_Click ()
  370.     If Not Socket2.Connected Then
  371.         ServerOption.Checked = Not ServerOption.Checked
  372.         If ServerOption.Checked Then
  373.             Socket2.Action = SOCKET_LISTEN
  374.         Else
  375.             Socket2.Action = SOCKET_CLOSE
  376.         End If
  377.     End If
  378. End Sub
  379.  
  380. Sub ServiceName_GotFocus ()
  381.     ServiceName.SelStart = 0
  382.     ServiceName.SelLength = Len(ServiceName.Text)
  383. End Sub
  384.  
  385. Sub ServiceName_LostFocus ()
  386.     On Error GoTo BadName
  387.  
  388.     Socket1.RemoteService = Trim(ServiceName.Text)
  389.     ServicePort.Text = Socket1.RemotePort
  390.     Exit Sub
  391.  
  392. BadName:
  393.     ServicePort.Text = ""
  394.     ServiceName.SetFocus
  395.     Exit Sub
  396. End Sub
  397.  
  398. Sub ServicePort_GotFocus ()
  399.     ServicePort.SelStart = 0
  400.     ServicePort.SelLength = Len(ServicePort.Text)
  401. End Sub
  402.  
  403. Sub ServicePort_KeyPress (KeyAscii As Integer)
  404.     If KeyAscii > Asc("9") Then
  405.         KeyAscii = 0
  406.         Beep
  407.     ElseIf KeyAscii >= Asc("0") And Len(ServicePort.Text) > 5 Then
  408.         KeyAscii = 0
  409.         Beep
  410.     End If
  411. End Sub
  412.  
  413. Sub ServicePort_LostFocus ()
  414.     On Error GoTo BadPort
  415.  
  416.     Socket1.RemotePort = Val(Trim(ServicePort.Text))
  417.     ServiceName.Text = Socket1.RemoteService
  418.     Exit Sub
  419.  
  420. BadPort:
  421.     ServiceName.Text = ""
  422.     ServicePort.SetFocus
  423.     Exit Sub
  424. End Sub
  425.  
  426. Sub Socket1_Close ()
  427.     Socket1.Action = SOCKET_CLOSE
  428.     ActionButton.Caption = "Connect"
  429.     ActionButton.Default = True
  430.     HostName.SetFocus
  431. End Sub
  432.  
  433. Sub Socket1_Connect ()
  434.     MainForm.MousePointer = 0
  435.     ActionButton.Caption = "Close"
  436.     ActionButton.Enabled = True
  437.     SocketInput.SetFocus
  438. End Sub
  439.  
  440. Sub Socket1_Error (ErrCode As Integer, ErrMsg As String, Response As Integer)
  441.     If Socket1.Action = SOCKET_CONNECT Then
  442.         MsgBox ErrMsg, 0, "Connect"
  443.         Response = SOCKET_ERRIGNORE
  444.         Socket1.Action = SOCKET_CLOSE
  445.         ActionButton.Caption = "Connect"
  446.         ActionButton.Default = True
  447.         ActionButton.Enabled = True
  448.         Exit Sub
  449.     End If
  450. End Sub
  451.  
  452. Sub Socket1_Read (DataLength As Integer, IsUrgent As Integer)
  453.     Socket1.RecvLen = DataLength
  454.     SocketOutput.AddItem Socket1.RecvData
  455.     SocketOutput.ListIndex = SocketOutput.ListCount - 1
  456.     SocketOutput.Selected(SocketOutput.ListIndex) = False
  457. End Sub
  458.  
  459. Sub Socket2_Accept (SocketId As Integer)
  460.     Socket2.Action = SOCKET_ACCEPT
  461. End Sub
  462.  
  463. Sub Socket2_Close ()
  464.     Socket2.Action = SOCKET_CLOSE
  465.     If ServerOption.Checked Then
  466.         Socket2.ReuseAddress = True
  467.         Socket2.Action = SOCKET_LISTEN
  468.     End If
  469. End Sub
  470.  
  471. Sub Socket2_Read (DataLength As Integer, IsUrgent As Integer)
  472.     Socket2.RecvLen = DataLength
  473.     Socket2.SendLen = DataLength
  474.     Socket2.SendData = Socket2.RecvData
  475. End Sub
  476.  
  477. Sub SocketInput_KeyPress (KeyAscii As Integer)
  478.     If KeyAscii = 13 Then
  479.         KeyAscii = 0
  480.         Socket1.SendLen = Len(SocketInput.Text) + 2
  481.         Socket1.SendData = SocketInput.Text & Chr(13) & Chr(10)
  482.         SocketInput.Text = ""
  483.     End If
  484. End Sub
  485.  
  486. Sub Spin1_SpinDown ()
  487.     Dim Value As Integer
  488.  
  489.     Value = Val(ServicePort.Text) - 1
  490.     If Value >= 0 Then
  491.         Socket1.RemotePort = Value
  492.         ServiceName.Text = Socket1.RemoteService
  493.         ServicePort.Text = Trim(Str(Value))
  494.     Else
  495.         Beep
  496.     End If
  497. End Sub
  498.  
  499. Sub Spin1_SpinUp ()
  500.     Dim Value As Integer
  501.  
  502.     Value = Val(ServicePort.Text) + 1
  503.     If Value > 0 Then
  504.         Socket1.RemotePort = Value
  505.         ServiceName.Text = Socket1.RemoteService
  506.         ServicePort.Text = Trim(Str(Value))
  507.     Else
  508.         Beep
  509.     End If
  510. End Sub
  511.  
  512.