home *** CD-ROM | disk | FTP | other *** search
/ Delphi Developer's Kit 1996 / Delphi Developer's Kit 1996.iso / power / vbsock11 / chat / client / mainwin.frm (.txt) < prev    next >
Encoding:
Visual Basic Form  |  1995-12-22  |  10.2 KB  |  324 lines

  1. VERSION 2.00
  2. Begin Form MainForm 
  3.    BackColor       =   &H00C0C0C0&
  4.    Caption         =   "Client"
  5.    ClientHeight    =   6060
  6.    ClientLeft      =   2490
  7.    ClientTop       =   1260
  8.    ClientWidth     =   7080
  9.    Height          =   6750
  10.    Icon            =   MAINWIN.FRX:0000
  11.    Left            =   2430
  12.    LinkTopic       =   "Form1"
  13.    MaxButton       =   0   'False
  14.    ScaleHeight     =   6060
  15.    ScaleWidth      =   7080
  16.    Top             =   630
  17.    Width           =   7200
  18.    Begin VBClient VBClient1 
  19.       Prop10          =   "Click on ""..."" for the About Box ---->"
  20.       ErrorFlag       =   0
  21.       GiveErrorFlag   =   0  'FALSE
  22.       Height          =   420
  23.       HostAddress     =   ""
  24.       Left            =   6480
  25.       OpenFlag        =   0
  26.       Port            =   0
  27.       Protocol        =   0  'TCP
  28.       SelectAction    =   0
  29.       SinFamily       =   2  ' AF_INET
  30.       Top             =   120
  31.       Width           =   420
  32.    End
  33.    Begin CommandButton SendData 
  34.       Caption         =   "&Send"
  35.       Default         =   -1  'True
  36.       Enabled         =   0   'False
  37.       Height          =   495
  38.       Left            =   4920
  39.       TabIndex        =   0
  40.       Top             =   240
  41.       Width           =   1215
  42.    End
  43.    Begin TextBox RecvBox 
  44.       Height          =   2175
  45.       Left            =   240
  46.       MaxLength       =   2000
  47.       MultiLine       =   -1  'True
  48.       ScrollBars      =   2  'Vertical
  49.       TabIndex        =   4
  50.       Top             =   3240
  51.       Width           =   6615
  52.    End
  53.    Begin ComboBox ServerBox 
  54.       Height          =   300
  55.       Left            =   240
  56.       TabIndex        =   3
  57.       Top             =   240
  58.       Width           =   3495
  59.    End
  60.    Begin TextBox MessageBox 
  61.       Enabled         =   0   'False
  62.       Height          =   1695
  63.       Left            =   240
  64.       MultiLine       =   -1  'True
  65.       ScrollBars      =   2  'Vertical
  66.       TabIndex        =   2
  67.       Top             =   960
  68.       Width           =   6615
  69.    End
  70.    Begin CommonDialog CMDialog1 
  71.       Filter          =   "Host File (Hosts.)|Hosts|All Files (*.*)|*.*"
  72.       Left            =   3840
  73.       Top             =   240
  74.    End
  75.    Begin CommandButton Command1 
  76.       Caption         =   "&Connect"
  77.       Height          =   495
  78.       Left            =   2760
  79.       TabIndex        =   1
  80.       Top             =   5520
  81.       Width           =   1215
  82.    End
  83.    Begin Label Label1 
  84.       BackColor       =   &H00C0C0C0&
  85.       Caption         =   "In Coming..."
  86.       Height          =   255
  87.       Index           =   1
  88.       Left            =   240
  89.       TabIndex        =   7
  90.       Top             =   3000
  91.       Width           =   1335
  92.    End
  93.    Begin Line Line1 
  94.       BorderWidth     =   4
  95.       X1              =   240
  96.       X2              =   6840
  97.       Y1              =   2760
  98.       Y2              =   2760
  99.    End
  100.    Begin Label Label2 
  101.       BackColor       =   &H00C0C0C0&
  102.       Caption         =   "Send Message"
  103.       Height          =   255
  104.       Left            =   240
  105.       TabIndex        =   6
  106.       Top             =   720
  107.       Width           =   1455
  108.    End
  109.    Begin Label Label1 
  110.       BackColor       =   &H00C0C0C0&
  111.       Caption         =   "Server"
  112.       Height          =   255
  113.       Index           =   0
  114.       Left            =   240
  115.       TabIndex        =   5
  116.       Top             =   0
  117.       Width           =   735
  118.    End
  119.    Begin Menu mnuFile 
  120.       Caption         =   "&File"
  121.       Begin Menu mnuExit 
  122.          Caption         =   "E&xit"
  123.       End
  124.    End
  125.    Begin Menu MnuOptions 
  126.       Caption         =   "&Options"
  127.       Begin Menu MnuClear 
  128.          Caption         =   "&Clear Windows"
  129.       End
  130.    End
  131. DefInt A-Z
  132. Dim ServerSocket As Integer
  133. Dim CurrentSocket As Integer
  134. Dim TheSendsocket As Integer
  135. Sub Command1_Click ()
  136.     If StartStop = START_MODE Then
  137.         Command1.Caption = "&Disconnect"
  138.         StartStop = STOP_MODE
  139.         SendData.Enabled = True
  140.         MessageBox.Enabled = True
  141.         RecvBox.Enabled = True
  142.          
  143.         StartSendListen
  144.         RecvBox.Text = ""
  145.     Else
  146.         Command1.Caption = "&Connect"
  147.         StartStop = START_MODE
  148.         SendData.Enabled = False
  149.         MessageBox.Enabled = False
  150.         RecvBox.Enabled = False
  151.          
  152.         StopSendListen
  153.     End If
  154. End Sub
  155. Function FindBlank (PStringToSearch As String, PTargetString As String) As Integer
  156. Dim LclString As String
  157.     FindBlank = 0
  158.     StringLen = Len(PStringToSearch)
  159.     For ii = StringLen To 1 Step -1
  160.         LclString = Mid$(PStringToSearch, ii)
  161.         If Asc(LclString) < 32 Then
  162.             FindBlank = ii
  163.             Exit For
  164.         End If
  165.     Next ii
  166. End Function
  167. Sub Form_Load ()
  168. '   Load the combo-box with valid servers from the
  169. '   hosts file.
  170.     ServerBox.Text = ServerString
  171.     LoadServerBox ServerBox
  172.     TheSendsocket = INVALID_SOCKET
  173.      
  174.     StartStop = START_MODE
  175. End Sub
  176. Sub Form_Unload (Cancel As Integer)
  177.     StopSendListen
  178.     ii = CleanSocket()
  179. End Sub
  180. ' This function will take a string from a host table
  181. ' and return the server name.
  182. ' The strings in the host table take the form:
  183. ' <address> <server name>
  184. Sub LoadServerBox (PServerBox As ComboBox)
  185.     Dim LclString As String
  186.     TempFileHandle = FreeFile
  187.     On Error Resume Next
  188.     Open HostFileName For Input As TempFileHandle
  189.     If Err Then
  190.         MsgBox "Can't open file: " + HostFileName
  191.     Else
  192.         Do While Not EOF(TempFileHandle)
  193.             Line Input #TempFileHandle, LclString  ' Read line of data.
  194.             LclString = ParseHostString(LclString)
  195.             If Len(LclString) > 0 Then
  196.                 PServerBox.AddItem LclString
  197.             End If
  198.         Loop
  199.     End If
  200.    Close #TempFileHandle
  201. End Sub
  202. Sub MnuClear_Click ()
  203.     MessageBox.Text = ""
  204.     RecvBox.Text = ""
  205. End Sub
  206. Sub mnuExit_Click ()
  207.   End
  208. End Sub
  209. Function ParseHostString (PString As String) As String
  210.     ParseHostString = ""
  211.     ii = FindBlank(PString, " ")
  212.     If ii > 0 Then
  213.         ii = ii + 1
  214.         ParseHostString = Mid$(PString, ii)
  215.     End If
  216. End Function
  217. Sub ProcessMessage ()
  218.         Dim LclServer As String
  219.         Dim LclString As String
  220.         LclServer = ServerBox.Text
  221.         LclString = "Message Recieved dude"
  222.         SendString LclServer, LclString
  223. End Sub
  224. Sub SendData_Click ()
  225.     Dim LclString As String
  226.     Dim LclServer As String
  227.     LclString = ServerBox.Text
  228.     If Len(LclString) = 0 Then
  229.         MsgBox "You Must Name a Server"
  230.         ServerBox.SetFocus
  231.     Else
  232.         ServerString = ServerBox.Text
  233.         LclServer = ServerBox.Text
  234.         LclString = MessageBox.Text
  235.         SendString LclServer, LclString
  236.         MessageBox.Text = ""
  237.         MessageBox.SetFocus
  238.     End If
  239. End Sub
  240. Sub SendString (Pserver As String, PMessage As String)
  241.     LclLen = Len(PMessage)
  242.     ii = Sendsocket(TheSendsocket, PMessage, LclLen, 0)
  243. End Sub
  244. Sub StartSendListen ()
  245.     Dim LclServer As String
  246.     Dim ii As Integer
  247.     LclServer = ServerBox.Text
  248.     ii = Len(LclServer)
  249.     If (ii <> 0) Then
  250.         thePort = MSG_TCP_PORT
  251.         If TheSendsocket = INVALID_SOCKET Then
  252.            vbclient1.SelectAction = FD_ACCEPT Or FD_CLOSE Or FD_READ
  253.            vbclient1.HostAddress = LclServer
  254.            vbclient1.Port = thePort
  255.            vbclient1.OpenFlag = True
  256.            TheSendsocket = vbclient1.SocketNumber
  257.             Select Case TheSendsocket
  258.                 Case BAD_SOCKET
  259.                     MsgBox "Error Opening Socket: Bad Socket " + Str$(TheSendsocket)
  260.                     Exit Sub
  261.                 Case UNRESOLVED_HOST
  262.                     MsgBox "Error Opening Socket: Unresolved host " + Str$(TheSendsocket)
  263.                     Exit Sub
  264.                 Case UNABLE_TO_BIND
  265.                     MsgBox "Error Opening Socket: Unable to bind socket " + Str$(TheSendsocket)
  266.                     Exit Sub
  267.                 Case UNABLE_TO_CONNECT
  268.                     MsgBox "Error Opening Socket: Unable to connect socket " + Str$(TheSendsocket)
  269.                     Exit Sub
  270.             End Select
  271.         End If ' TheSendsocket
  272.      
  273.     Else ' else they don't have a server
  274.         MsgBox "You must select a server"
  275.     End If ' end if len of LclString
  276. End Sub
  277. Sub StopSendListen ()
  278.     If ServerSocket <> INVALID_SOCKET Then
  279.         ii = CloseTheSocket(ServerSocket)
  280.         ServerSocket = INVALID_SOCKET
  281.     End If
  282.     If CurrentSocket <> INVALID_SOCKET Then
  283.         ii = CloseTheSocket(CurrentSocket)
  284.         CurrentSocket = INVALID_SOCKET
  285.     End If
  286.     If TheSendsocket <> INVALID_SOCKET Then
  287.         ii = CloseTheSocket(TheSendsocket)
  288.         TheSendsocket = INVALID_SOCKET
  289.     End If
  290. End Sub
  291. Sub VBClient1_Message (MsgVal As Integer, wparam As Integer, lparam As Long)
  292. Dim LclBuf As String
  293.     LclBuf = Space$(2000)
  294.     If (wparam = TheSendsocket) Then
  295.         ' socket closed by client
  296.         ii = GetSelectEventSocket(lparam)
  297.         If (ii = FD_READ) Then
  298.             ' this assumes that no message exceeds MAX_MSG_SIZE
  299.                 LclLen = RecvSocket(TheSendsocket, LclBuf, 300, 0)
  300.                 If (LclLen > 0) Then
  301.                     LclBuf = Mid$(LclBuf, 1, LclLen)
  302.                     If Len(MainForm!RecvBox.Text) > 1250 Then
  303.                         RecvBox.Text = LTrim$(Right$(RecvBox.Text, 50)) + LclBuf + Chr$(13) + Chr$(10)
  304.                     Else
  305.                         RecvBox.Text = RecvBox.Text + LclBuf + Chr$(13) + Chr$(10)
  306.                     End If
  307.                     LclBuf = RecvBox.Text
  308.                     ii = Len(LclBuf)
  309.                     RecvBox.SelStart = ii
  310.                     LclBuf = ""
  311.                     If MainForm.WindowState = MINIMIZED Then
  312.                         MainForm.WindowState = NORMAL
  313.                         Beep
  314.                     End If
  315.                     If AutoFlag = True Then
  316.                         RecvBox.Text = RecvBox.Text + "AutoFlag True" + Chr$(13) + Chr$(10)
  317.                         ProcessMessage
  318.                     End If
  319.                         
  320.             End If
  321.         End If
  322.     End If 'end if wp = TheSendsocket */
  323. End Sub
  324.