Advertisement
Guest User

The VB Helper/Tex

a guest
Jul 31st, 2010
2,664
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 20.62 KB | None | 0 0
  1. Public Class frmCommunicator
  2.     Dim user As String = Nothing
  3.     Dim disconected As String = Nothing
  4.     Dim disconnSock As String = Nothing
  5.     Dim sendall As String = Nothing
  6.     Dim exclude_sock As Integer
  7.     Dim new_sock As Integer
  8.     Dim privSock As Integer
  9.     Dim privSock2 As Integer
  10.     Dim privSock3 As Integer
  11.     Dim privString As String = Nothing
  12.     Dim list As String = Nothing
  13.     Dim list1 As String = Nothing
  14.     Dim list2 As String = Nothing
  15.     Dim countListItems As Integer
  16.  
  17.  
  18.     Public Sub sendPriv()
  19.  
  20.         Server.Send(privSock2, "@code1847@" & privString & "   " & CStr(privSock3))
  21.         Server.Send(privSock3, "@code1847@" & privString & "   " & CStr(privSock2))
  22.         privSock3 = Nothing
  23.         privSock2 = Nothing
  24.         privString = Nothing
  25.  
  26.     End Sub
  27.     Public Sub dodaj_korisnika()
  28.         ListBox1.Items.Add(user + "   " + CStr(privSock))
  29.         countListItems += 1
  30.         user = Nothing
  31.     End Sub
  32.     Public Sub izbrisi_korisnika()
  33.         For i As Integer = 0 To ListBox1.Items.Count - 1
  34.             If ListBox1.Items.Item(i).ToString = disconected & "   " & disconnSock Then
  35.                 ListBox1.Items.RemoveAt(i)
  36.                 Exit For
  37.             End If
  38.         Next
  39.         disconected = Nothing
  40.     End Sub
  41.     Public Sub senditall()
  42.         serverSendToAllConnected2("", sendall)
  43.         sendall = Nothing
  44.     End Sub
  45.     Public Sub usersUpdate()
  46.         serverSendToAllConnected3("", sendall)
  47.     End Sub
  48.     Public Sub userLeave()
  49.         serverSendToAllConnected4("", sendall)
  50.     End Sub
  51.     Private Sub serverSendToAllConnected4(ByVal User As String, ByVal Message As String, Optional ByVal ExceptSock As Integer = -1)
  52.         If isArraySafe(InUse) Then
  53.             For i As Integer = 0 To InUse.Length - 1
  54.  
  55.                 If Not (i = ExceptSock) Then
  56.                     If InUse(i) Then
  57.  
  58.                         list2 = ""
  59.                         For b As Integer = 0 To ListBox1.Items.Count - 1 ' nema potrebe izvrtjeti sve korisnike ponovo i za one kojima su veæ uploadani
  60.                             ' OVAJ DIO JE ZA NOVOULOGIRANE KORISNIKE
  61.                             list2 = list2 & ListBox1.Items.Item(b).ToString + vbCrLf
  62.                         Next
  63.                         Server.Send(i, "@code1840@" & list2)
  64.                    
  65.                     End If
  66.                 End If
  67.             Next
  68.         End If
  69.         list2 = Nothing
  70.     End Sub
  71.     Private Sub serverSendToAllConnected3(ByVal User As String, ByVal Message As String, Optional ByVal ExceptSock As Integer = -1)
  72.         If isArraySafe(InUse) Then
  73.             For i As Integer = 0 To InUse.Length - 1
  74.  
  75.                 If Not (i = ExceptSock) Then
  76.                     If InUse(i) Then
  77.                         If new_sock = i Then
  78.                             list1 = ""
  79.                             For b As Integer = 0 To ListBox1.Items.Count - 1 ' nema potrebe izvrtjeti sve korisnike ponovo i za one kojima su veæ uploadani
  80.                                 ' OVAJ DIO JE ZA NOVOULOGIRANE KORISNIKE
  81.                                 list1 = list1 & ListBox1.Items.Item(b).ToString + vbCrLf
  82.                             Next
  83.                             Server.Send(i, "@code1841@" & list1)
  84.                         Else
  85.                             Server.Send(i, "@code1841@" & list & "   " & CStr(privSock))             ' OVO JE LAGANI UPDATE POPISA KORISNIKA ZA ONE KOJI SU VEÆ TU
  86.                         End If
  87.                     End If
  88.                 End If
  89.             Next
  90.         End If
  91.         list = Nothing
  92.         list1 = Nothing
  93.         new_sock = Nothing
  94.     End Sub
  95.     Private Sub serverSendToAllConnected2(ByVal User As String, ByVal Message As String, Optional ByVal ExceptSock As Integer = -1)
  96.         If isArraySafe(InUse) Then
  97.             For i As Integer = 0 To InUse.Length - 1
  98.                 If i <> exclude_sock Then
  99.                     If Not (i = ExceptSock) Then
  100.                         If InUse(i) Then
  101.                             Server.Send(i, "" & Message)
  102.                         End If
  103.                     End If
  104.                 End If
  105.             Next
  106.         End If
  107.     End Sub
  108. #Region "Server Code"
  109.     Private Server As socketServer
  110.     Private ServerOn As Boolean = False
  111.     Private InUse() As Boolean
  112.  
  113.  
  114.     Private Sub serverLogMessage(ByVal Message As String)
  115.         Delegates.RichTextBoxes.appendText(Me, rtbServer, vbCrLf & Message)
  116.     End Sub
  117.  
  118.     Private Sub serverSendToAllConnected(ByVal User As String, ByVal Message As String, Optional ByVal ExceptSock As Integer = -1)
  119.         If isArraySafe(InUse) Then
  120.             For i As Integer = 0 To InUse.Length - 1
  121.                 If Not (i = ExceptSock) Then
  122.                     If InUse(i) Then
  123.                         Server.Send(i, "Server:  " & Message)
  124.                     End If
  125.                 End If
  126.             Next
  127.         End If
  128.     End Sub
  129.  
  130.     Private Sub txtServeSend_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtServeSend.KeyPress
  131.         If e.KeyChar = Chr(Keys.Enter) Then
  132.             If Server IsNot Nothing Then
  133.                 serverSendToAllConnected("Server", txtServeSend.Text)
  134.                 serverLogMessage("Server:  " & txtServeSend.Text)
  135.                 txtServeSend.Text = ""
  136.             End If
  137.         End If
  138.     End Sub
  139.  
  140.     Private Sub btnStopServe_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStopServe.Click
  141.         If Server Is Nothing Then
  142.             Exit Sub
  143.         Else
  144.             If ServerOn = False Then
  145.                 Exit Sub
  146.             Else
  147.                 Server.stopListen(True)
  148.                 serverLogMessage("No longer serving.")
  149.                 ServerOn = False
  150.             End If
  151.         End If
  152.     End Sub
  153.     '#################################  FOR LONG IP ADDRESS  -  NEBITNO ######################################
  154.     Public Function Dotted2LongIP(ByVal DottedIP As String) As Object
  155.         ' errors will result in a zero value
  156.         On Error Resume Next
  157.  
  158.         Dim i As Byte, pos As Integer
  159.         Dim PrevPos As Integer, num As Integer
  160.  
  161.         ' string cruncher
  162.         For i = 1 To 4
  163.             ' Parse the position of the dot
  164.             pos = InStr(PrevPos + 1, DottedIP, ".", 1)
  165.  
  166.             ' If its past the 4th dot then set pos to the last
  167.             'position + 1
  168.  
  169.             If i = 4 Then pos = Len(DottedIP) + 1
  170.  
  171.             ' Parse the number from between the dots
  172.  
  173.             num = Int(Mid(DottedIP, PrevPos + 1, pos - PrevPos - 1))
  174.  
  175.             ' Set the previous dot position
  176.             PrevPos = pos
  177.  
  178.             ' No dot value should ever be larger than 255
  179.             ' Technically it is allowed to be over 255 -it just
  180.             ' rolls over e.g.
  181.             '256 => 0 -note the (4 - i) that's the
  182.             'proper exponent for this calculation
  183.  
  184.  
  185.             Dotted2LongIP = ((num Mod 256) * (256 ^ (4 - i))) + Dotted2LongIP
  186.  
  187.         Next
  188.         Return Dotted2LongIP
  189.     End Function
  190.     '#############################################################################################
  191.     Private Sub btnServe_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnServe.Click
  192.  
  193.         If Server Is Nothing Then
  194.             Server = New socketServer()
  195.         Else
  196.             If ServerOn = False Then
  197.                 Server = New socketServer()
  198.             Else
  199.                 Exit Sub
  200.             End If
  201.         End If
  202.  
  203.         ServerOn = True
  204.  
  205.         AddHandler Server.IncomingData, AddressOf handleServerIncomingData
  206.         AddHandler Server.Connected, AddressOf handleServerConnected
  207.         AddHandler Server.ConnectionError, AddressOf handleServerConnectionError
  208.         AddHandler Server.ConnectionRefused, AddressOf handleServerConnectionRefused
  209.         AddHandler Server.Disconnected, AddressOf handleServerDisconnected
  210.         AddHandler Server.DisconnectError, AddressOf handleServerDisconnectError
  211.         AddHandler Server.IncomingDataError, AddressOf handleServerIncomingDataError
  212.         AddHandler Server.ListenError, AddressOf handleServerListenError
  213.         AddHandler Server.SendDataError, AddressOf handleServerSendDataError
  214.  
  215.         ReDim InUse(63)
  216.  
  217.         Server.Listen(64, txtServePort.Text)
  218.  
  219.         serverLogMessage("Now serving.")
  220.     End Sub
  221.  
  222.     '************************************************************
  223.     'Primary Socket Functionality
  224.     '************************************************************
  225.     Public Sub handleServerIncomingData(ByVal Sock As Integer, ByRef Data As String)
  226.         If InStr(Data, "@code1843@") > 0 And Data.Length > 0 Then
  227.             Data$ = Replace(Data$, "@code1843@", "")
  228.             user = Data
  229.             list = Data
  230.             list1 = Data
  231.             new_sock = Sock
  232.             privSock = Sock
  233.         ElseIf InStr(Data, "@code1842@") > 0 And Data.Length > 0 Then
  234.             Data$ = Replace(Data$, "@code1842@", "")
  235.             disconected = Trim(Mid(Data, 1, Data.Length))
  236.             disconnSock = CStr(Sock)
  237.         ElseIf InStr(Data, "@code1839@") > 0 And Data.Length > 0 Then
  238.             Data$ = Replace(Data$, "@code1839@", "")
  239.             privString = LSet(Data, Data.Length - 2)
  240.             privSock2 = CInt(Trim(Mid(Data, Data.Length - 2)))
  241.             privSock3 = Sock
  242.             sendPriv()
  243.         Else
  244.             If Data.Length > 0 Then
  245.                 serverLogMessage(Data)
  246.                 sendall = Data
  247.                 exclude_sock = Sock
  248.             End If
  249.         End If
  250.     End Sub
  251.  
  252.     Private Sub handleServerConnected(ByVal Sock As Integer, ByVal RemoteAddress As String)
  253.         serverLogMessage("Connection from " & RemoteAddress & " to socket space " & Sock & ".")
  254.         InUse(Sock) = True
  255.     End Sub
  256.  
  257.     Private Sub handleServerConnectionRefused(ByVal Message As String)
  258.         serverLogMessage(Message)
  259.     End Sub
  260.  
  261.     Private Sub handleServerDisconnected(ByVal Sock As Integer)
  262.         serverLogMessage("Socket " & Sock & ":  Disconnected.")
  263.         InUse(Sock) = False
  264.     End Sub
  265.  
  266.     '************************************************************
  267.     'Functional Error Reporting (Below)
  268.     '************************************************************
  269.     Private Sub handleServerConnectionError(ByVal Sock As Integer, ByVal Message As String)
  270.         serverLogMessage("Socket " & Sock & ":  " & Message)
  271.     End Sub
  272.  
  273.     Private Sub handleServerDisconnectError(ByVal Sock As Integer, ByVal Message As String)
  274.         serverLogMessage("Socket " & Sock & ":  " & Message)
  275.     End Sub
  276.  
  277.     Private Sub handleServerIncomingDataError(ByVal Sock As Integer, ByVal Message As String)
  278.         serverLogMessage("Socket " & Sock & ":  " & Message)
  279.     End Sub
  280.  
  281.     Private Sub handleServerListenError(ByVal Message As String)
  282.         serverLogMessage("Error:  " & Message)
  283.         ServerOn = False
  284.     End Sub
  285.  
  286.     Private Sub handleServerSendDataError(ByVal Sock As Integer, ByVal Message As String)
  287.         serverLogMessage("Socket " & Sock & ":  " & Message)
  288.     End Sub
  289. #End Region
  290.  
  291. #Region "Client Code"
  292.     Dim sr As IO.StringReader
  293.     Dim users As String = Nothing
  294.     Dim refresh1 As String = Nothing
  295.  
  296.     Dim formNo As String = Nothing
  297.     Dim poruka As String = Nothing
  298.     Dim br As String = Nothing
  299.  
  300.     Public Sub findForm1()
  301.  
  302.         If Trim(Mid(My.Forms.Private1.Text, My.Forms.Private1.Text.Length - 2)) = formNo Then
  303.             My.Forms.Private1.RichTextBox1.Text = My.Forms.Private1.RichTextBox1.Text & poruka + vbCrLf
  304.  
  305.         ElseIf Trim(Mid(My.Forms.Private2.Text, My.Forms.Private2.Text.Length - 2)) = formNo Then
  306.             My.Forms.Private2.RichTextBox1.Text = My.Forms.Private2.RichTextBox1.Text & poruka + vbCrLf
  307.         Else
  308.             If My.Forms.Private1.Visible = False Then
  309.                 Dim name As String
  310.                 For i As Integer = 1 To poruka.Length
  311.                     If Mid(poruka, i, 2) = ": " Then
  312.                         Exit For
  313.                     End If
  314.                     name = name & Mid(poruka, i, 1)
  315.                 Next
  316.                 My.Forms.Private1.Show()
  317.                 My.Forms.Private1.Text = Trim(name) & "   " & br
  318.                 My.Forms.Private1.RichTextBox1.Text = My.Forms.Private1.RichTextBox1.Text & poruka + vbCrLf
  319.             Else
  320.                 Dim name As String
  321.                 For i As Integer = 1 To poruka.Length
  322.                     If Mid(poruka, i, 2) = ": " Then
  323.                         Exit For
  324.                     End If
  325.                     name = name & Mid(poruka, i, 1)
  326.                 Next
  327.                 My.Forms.Private2.Show()
  328.                 My.Forms.Private2.Text = Trim(name) & "   " & br
  329.                 My.Forms.Private2.RichTextBox1.Text = My.Forms.Private2.RichTextBox1.Text & poruka + vbCrLf
  330.             End If
  331.         End If
  332.  
  333.         formNo = Nothing
  334.         poruka = Nothing
  335.  
  336.     End Sub
  337.  
  338.     Public Sub addUsers()
  339.         sr = New IO.StringReader(users)
  340.         Do Until sr.Peek < 0
  341.             ListBox2.Items.Add(sr.ReadLine)
  342.         Loop
  343.         users = Nothing
  344.     End Sub
  345.     Public Sub refUsers()
  346.         ListBox2.Items.Clear()
  347.         sr = New IO.StringReader(refresh1)
  348.         Do Until sr.Peek < 0
  349.             ListBox2.Items.Add(sr.ReadLine)
  350.         Loop
  351.         refresh1 = Nothing
  352.     End Sub
  353.  
  354.     Private Client As socketClient
  355.  
  356.     Private Sub clientLogMessage(ByVal Message As String)
  357.         Delegates.RichTextBoxes.appendText(Me, rtbClient, vbCrLf & Message)
  358.     End Sub
  359.  
  360.     Private Sub btnClientConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClientConnect.Click
  361.         If InStr(txtClientName.Text, "@code1843@") > 0 Then
  362.             MsgBox("Nickname nesmije sadržavati niz '@code1843@' !")
  363.         ElseIf InStr(txtClientName.Text, " ") > 0 Then
  364.             MsgBox("Nickname nesmije sadržavati razmak !")
  365.         Else
  366.  
  367.             Client = New socketClient()
  368.  
  369.             AddHandler Client.Connected, AddressOf handleClientConnected
  370.             AddHandler Client.ConnectionError, AddressOf handleClientConnectionError
  371.             AddHandler Client.Disconnected, AddressOf handleClientDisconnected
  372.             AddHandler Client.DisconnectError, AddressOf handleClientDisconnectError
  373.             AddHandler Client.IncomingData, AddressOf handleClientIncomingData
  374.             AddHandler Client.IncomingDataError, AddressOf handleClientIncomingDataError
  375.             AddHandler Client.SendDataError, AddressOf handleClientSendDataError
  376.  
  377.             Client.Connect(txtClientIP.Text, txtClientPort.Text)
  378.  
  379.             '#################################### information about new user ###########################
  380.             If Client.isConnected Then
  381.                 Client.Send("@code1843@" & txtClientName.Text)
  382.                 clientLogMessage(txtClientName.Text)
  383.                 txtClientSend.Text = ""
  384.  
  385.                 txtClientIP.Enabled = False
  386.                 txtClientName.Enabled = False
  387.                 txtClientPort.Enabled = False
  388.             End If
  389.             '###########################################################################################
  390.         End If
  391.     End Sub
  392.  
  393.     Private Sub txtClientSend_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtClientSend.KeyPress
  394.         If e.KeyChar = Chr(Keys.Enter) Then
  395.             If Client IsNot Nothing Then
  396.                 If Client.isConnected Then
  397.                     Client.Send(txtClientName.Text & ":  " & txtClientSend.Text)
  398.                     clientLogMessage(txtClientName.Text & ":  " & txtClientSend.Text)
  399.                     txtClientSend.Text = ""
  400.                 End If
  401.             End If
  402.         End If
  403.     End Sub
  404.  
  405.     '************************************************************
  406.     'Primary Socket Functionality
  407.     '************************************************************
  408.     Private Sub handleClientConnected()
  409.         clientLogMessage("Connected!")
  410.     End Sub
  411.  
  412.     Private Sub handleClientDisconnected()
  413.         clientLogMessage("Disconnected!")
  414.     End Sub
  415.  
  416.     Private Sub handleClientIncomingData(ByRef Data As String)
  417.         If InStr(Data, "@code1841@") > 0 And Data.Length > 0 Then
  418.             Data$ = Replace(Data$, "@code1841@", "")
  419.             users = Data
  420.         ElseIf InStr(Data, "@code1840@") > 0 And Data.Length > 0 Then
  421.             Data$ = Replace(Data$, "@code1840@", "")
  422.             refresh1 = Data
  423.         ElseIf InStr(Data, "@code1847@") > 0 And Data.Length > 0 Then
  424.             Data$ = Replace(Data$, "@code1847@", "")
  425.             formNo = Trim(Mid(Data, Data.Length - 2))
  426.             poruka = Mid(Data, 1, Data.Length - 2)
  427.             br = Trim(Mid(Data, Data.Length - 2))
  428.         Else
  429.             If Data.Length > 0 Then
  430.                 clientLogMessage(Data)
  431.             End If
  432.         End If
  433.     End Sub
  434.  
  435.  
  436.     '************************************************************
  437.     'Functional Error Reporting (Below)
  438.     '************************************************************
  439.     Private Sub handleClientConnectionError(ByVal Message As String)
  440.         clientLogMessage(Message)
  441.     End Sub
  442.  
  443.     Private Sub handleClientDisconnectError(ByVal Message As String)
  444.         clientLogMessage(Message)
  445.     End Sub
  446.  
  447.     Private Sub handleClientIncomingDataError(ByVal Message As String)
  448.         clientLogMessage(Message)
  449.     End Sub
  450.  
  451.     Private Sub handleClientSendDataError(ByVal Message As String)
  452.         clientLogMessage(Message)
  453.     End Sub
  454. #End Region
  455.  
  456.     Private Sub frmCommunicator_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
  457.         End
  458.     End Sub
  459.  
  460.     Private Sub btnClientDisconnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClientDisconnect.Click
  461.         Try
  462.             If Client.isConnected Then
  463.                 Client.Send("@code1842@" & txtClientName.Text)
  464.                 clientLogMessage("Odlogirani ste!")
  465.                 txtClientSend.Text = ""
  466.             End If
  467.         Catch ex As Exception
  468.  
  469.         End Try
  470.  
  471.         Client.Disconnect()
  472.  
  473.         Try
  474.             txtClientIP.Enabled = True
  475.             txtClientName.Enabled = True
  476.             txtClientPort.Enabled = True
  477.         Catch ex As Exception
  478.  
  479.         End Try
  480.         ListBox2.Items.Clear()
  481.     End Sub
  482.  
  483.     Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  484.         If user <> Nothing Then
  485.             dodaj_korisnika()
  486.             usersUpdate()
  487.         End If
  488.         If list <> Nothing Then
  489.  
  490.         End If
  491.         If disconected <> Nothing Then
  492.             izbrisi_korisnika()
  493.         End If
  494.         If sendall <> Nothing Then
  495.             senditall()
  496.         End If
  497.         If countListItems > ListBox1.Items.Count Then
  498.             userLeave()
  499.             countListItems -= 1
  500.         End If
  501.         If privSock3 <> Nothing Then
  502.             MsgBox("True")
  503.             sendPriv()
  504.         End If
  505.     End Sub
  506.  
  507.     Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
  508.         If users <> Nothing Then
  509.             addUsers()
  510.         End If
  511.         If refresh1 <> Nothing Then
  512.             refUsers()
  513.         End If
  514.         If poruka <> Nothing Then
  515.             findForm1()
  516.         End If
  517.     End Sub
  518.  
  519.     Private Sub txtServeSend_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtServeSend.TextChanged
  520.  
  521.     End Sub
  522.  
  523.     Private Sub rtbServer_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rtbServer.TextChanged
  524.  
  525.     End Sub
  526.  
  527.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  528.         Try
  529.             If Client.isConnected = True And ListBox2.SelectedItem.ToString <> Nothing Then
  530.                 If Private1.Visible = False Then
  531.                     Private1.Text = ListBox2.SelectedItem.ToString
  532.                     Private1.Show()
  533.                 Else
  534.                     Private2.Text = ListBox2.SelectedItem.ToString
  535.                     Private2.Show()
  536.                 End If
  537.             End If
  538.         Catch ex As Exception
  539.  
  540.         End Try
  541.  
  542.     End Sub
  543.     Public Sub privatno1(ByVal br As String)
  544.  
  545.         Client.Send("@code1839@" & txtClientName.Text & ": " & Private1.TextBox1.Text & "   " & br)
  546.  
  547.         Private1.TextBox1.Text = ""
  548.  
  549.     End Sub
  550.     Public Sub privatno2(ByVal br As String)
  551.  
  552.         Client.Send("@code1839@" & txtClientName.Text & ": " & Private2.TextBox1.Text & "   " & br)
  553.  
  554.         Private2.TextBox1.Text = ""
  555.  
  556.     End Sub
  557.  
  558. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement