Ir para conteúdo
Fórum Script Brasil

Lucas Phillip

Veteranos
  • Total de itens

    644
  • Registro em

  • Última visita

Tudo que Lucas Phillip postou

  1. aí... foi mal postar 3 vezes seguidas... mas é que por algum motivo, eu consigo resolver melhor as coisas depois que posto a duvida no forum :P bom, de qualquer forma, eu consegui fazer funcionar o codigo... eu só coloquei um winsock.close pra arruma o problema.... bom ai está o script final pra quem quiser :D Private Sub Winsock_ConnectionRequest(Index As Integer, ByVal requestID As Long) Dim Z As Integer Dim AchouLivre As Boolean Dim SCKLIVRE As Integer If Index = 0 Then For Z = 0 To iUsers If (Winsock(Z).State = sckClosed) Or (Winsock(Z).State = sckClosing) Then On Error Resume Next Winsock(Z).Close AchouLivre = True SCKLIVRE = Z Exit For End If Next If (AchouLivre = False) Then iUsers = iUsers + 1 Load Winsock(iUsers) Winsock(iUsers).LocalPort = iPorta Winsock(iUsers).Accept requestID Else Winsock(SCKLIVRE).LocalPort = iPorta Winsock(SCKLIVRE).Accept requestID End If End If Label2.Caption = "Sockets Abertos: " & iUsers End Sub vlw Graymalking.... você ajudo D++!! :D
  2. *edit* foi mal.. postei 2 vezes seguida :P, então le o outro post antes deste novidades :D eu dei um msgbox winsock(iusers).state pra ver como tavam ficando as conexões... ai voltava sempre "8" pros sockets que deveriam estar "livres"... ai eu pensei.. vo coloca "If (Winsock(Z).State = sckClosed) Or (Winsock(Z).State = sckClosing) Then" pra verifica se está livre... e funciono... :D só que ainda está com um outro problema... na hora que vai carrega o socket que está livre com: Winsock(SCKLIVRE).LocalPort = iPorta Winsock(SCKLIVRE).Accept requetID da esse erro: "Invalid operation at the current state"... ou seja, se o socket não está fechado e esta "fechando" não é assim que vou re-utilizar ele... ai se não é assim como é? ou eu volto na minha duvida mais cedo... sera que eu não to fechando o socket direito? porque eu coloquei winsock.close no programa do usuario...
  3. foi mal... a linha que eu uso e que dava erro é "If (Winsock(Z).State = sckClosed)" pra conferir conexão por conexao com o "for"... a outra la foi erro na hora de pedi ajuda mesmo :D bom, você tava certo.. tava dando erro porque o iusers começava do 0, e não do 1... então eu substitui o "for Z = 1 to (iusers +1)" por "for Z = 0 to iusers " e o erro parou de dar... só que também não está achando nenhuma conexao livre... está sempre criando uma nova :( olha o codigo ai como ficou: Private Sub Winsock_ConnectionRequest(Index As Integer, ByVal requestID As Long) Dim Z As Integer Dim AchouLivre As Boolean Dim SCKLIVRE As Integer If Index = 0 Then For Z = 0 To iUsers If (Winsock(Z).State = sckClosed) Then MsgBox "oi" AchouLivre = True SCKLIVRE = Z Exit For End If Next If (AchouLivre = False) Then iUsers = iUsers + 1 Load Winsock(iUsers) Winsock(iUsers).LocalPort = iPorta Winsock(iUsers).Accept requestID Else Winsock(SCKLIVRE).LocalPort = iPorta Winsock(SCKLIVRE).Accept requetID End If End If Label2.Caption = "Sockets Utilizados: " & iUsers End Sub eu coloquei aquele msgbox ali pra ver mais facil se tava achando um socket livre ou não... e agora? :blink:
  4. bom, eu fiz assim, mas não deu: Private Sub Winsock_ConnectionRequest(Index As Integer, ByVal requestID As Long) Dim Z As Integer Dim AchouLivre As Boolean Dim SCKLIVRE As Integer If Index = 0 Then For Z = 1 To (iUsers +1) If (Winsock(Z).State = sckClosed) Then AchouLivre = True SCKLIVRE = Z Else AchouLivre = False End If Next If (AchouLivre = False) Then iUsers = iUsers + 1 Load Winsock(iUsers) Winsock(iUsers).LocalPort = iPorta Winsock(iUsers).Accept requestID Else Winsock(SCKLIVRE).LocalPort = iPorta Winsock(SCKLIVRE).Accept requetID End If End If End Sub quando tenta conectar, volta o erro "Control array element '1' doesnt exist" nessa linha: "If (Winsock(iUsers).State = sckClosed) Then" ... como verifico então se o socket está livre ou não? :blink: vlw :D
  5. ahh.. :D eu ainda não pensei em como vou fazer pra reaproveitar não :P hehe... vo trabalha nisso agora :D.. vlw!
  6. beleza... então como eu faço para utilizar o controle que já existe? :( vlw
  7. bom... pra fazer um teste, eu coloquei "load winsock(1)" sempre, pra ver se quando o usuario desconectasse e reconectasse aproveitava... mas fala que já foi carregada... na verdade, eu não sei mexe muito com winsock não... tem algum tutorial completo que eu possa aprender melhor também? vlw :D
  8. tive mais problema :P lol... eu acho que não to sabendo fechar a conexão direito... porque quando fecha o chat, da "winsock.close".. só que quando vou conectar denovo, fala que a conexão já está sendo usada :( é assim mesmo que eu fecho uma conexao? ou tem que fechar no servidor de algum jeito também? vlw :D
  9. entendi... vou tentar isso..... acho que não vou ter mais problemas... muito obrigado! :D
  10. hmm... então eu vou ter que criar uma função pra procurar o indice do winsock livre mais "proximo" e mandar usuario utilizar esse indice? seria algo assim?
  11. Aew... eu estou fazendo um servidor que aceite multiplas conexoes... ai eu dei uma procurada e cheguei a esse código pra aceita as conexoes: Private Sub WskSvr_ConnectionRequest(Index As Integer, ByVal requestID As Long) If Index = 0 Then iUsers = iUsers + 1 Load Winsock(iUsers) Winsock(iUsers).LocalPort = iPorta Winsock(iUsers).Accept requestID End If e pra enviar as msgs ficou: For u = 1 To iUsers If Winsock(u).State = 7 Then Winsock(u).SendData STR End If Next u e funciono perfeitamente :D só tem 1 problema então, depois que eu fiquei reparando no codigo... meu servidor vai fica online o tempo todo... então a quantidade de conexoes vai só aumentando... ai vai chegar uma hora que o for vai ficar tipo "for u = 1 to 1243512341234" e o servidor vai começar a ficar lento :(... alguém tem alguma solução pra esse meu problema? vlw :D
  12. aparece no taskbar.. só que aparece só com o icone.. não aparece titulo nenhum....
  13. eu fiz isso.. quando eu falo em menu, eu digo "Arquivo", "Editar" etc que fica la em cima :P ai igual eu falei, se coloco menu, eu tenho que coloca o caption do form vazio pra não aparecer as bordas.. só que ai fica sem o nome do programa na taskbar...
  14. Ola!! bom, eu não queria bordas no meu programa, mas queria um menu... então eu coloquei bordersyle "none", só que a borda continuava aparecendo.. ai eu coloquei form.1caption ="" e a borda sumiu.... ate ai beleza.. só que assim não aparece o nome do programa no taskbar... como eu faço então pra não ter borda, ter um menu e aparecer o nome do programa no taskbar??? vlw :D
  15. pode deixar... achei um exemplo no site do macoratti :D vlw
  16. Olá pessoal, eu queria saber se como eu faço pra usar o algoritimo md5 no vb, para poder criptografar minhas senhas... tipo, tem que ser md5, porque é o unico algoritimo que eu achei que tem tanto no php quando no vb... vlw :D
  17. eu resolvi o problema assim... quando manda a msg que esta fazendo logoff, manda pro servidor que manda pra todo mundo, inclusive quem está fazendo logoff... ai quando o cara recebe a msg de logoff e o nome de quem está saindo é igual o dele a janela fecha :D acho que está beleza assim... vlw
  18. se você fala em colocar Winsock.SendData "offlinesnd;" + USER winsock.close Unload Me já tentei e deu na mesma :(
  19. Ola, eu estou fazendo um chat, e coloquei um botao em um form la pra fechar o programa... só que antes de fechar o programa, vai mandar uma msg pro servidor falando que o usuario esta saindo... só que estou com 1 problema.... se eu coloco a linha de fechar a janela antes de enviar a msg, envia a msg mas o programa continua aberto... e se eu coloco a linha para fechar o programa depois da msg, fecha o programa mas não manda a msg... aff :P ai está o codigo Private Sub Command4_Click() On Error Resume Next responce = MsgBox("Você tem certeza que deseja sair?", vbQuestion + vbYesNo, "Sair") If responce = vbYes Then Winsock.SendData "offlinesnd;" + USER Unload Me Else Cancel = True End If End Sub socorro! hehe :D
  20. hmm.. pode ser.. vo tenta essa ideia :D vlw
  21. Olá, eu estou fazendo um chat, mas estou tendo muito dificuldades em colocar uma lista dos usuarios online... eu ate consegui inventer um código la muito doido que adiciona o povo na lista quando entra, Meu problema é pra tirar os usuarios la lista.... se eles sempre clicarem em "sair" eu ate consigo, mas não sei como vou fazer para tira-los da lista caso reiniciem ou o pc desligue sem fechar o programa... alguém ai sabe como me ajudar?? ou sabe onde tem um tutorial ou codigo fonte com exemplo?? vlw! B)
  22. pode ser que se trocar de navegador funcione.. mas com IE não está funcionando :P ... e ai, alguém sabe o que está errado?? vlw :D
  23. Olá, eu fiz um script pra trocar a imagem sem que o usuario tenha que dar reload... só que por algum motivo, quando troca a imagem, fica tudo preto e o usuario tem que clicar com o botao direito e clicar em "mostrar imagem" para ela aparecer... :P ai vai o codigo var num = 0; function mais(imagem) { num++; imagem.src = \"imagens/semarm\" + num + \".jpg\"; document.form1.fotoesc.value = \"semarm\" + num; if (num>=4) { imagem.src = \"imagens/semarm0.jpg\"; document.form1.fotoesc.value = \"semarm0\"; num = 0; } } function menos(imagem) { num--; imagem.src = \"imagens/semarm\" + num + \".jpg\"; document.form1.fotoesc.value = \"semarm\" + num; if (num<0) { imagem.src = \"imagens/semarm3.jpg\"; document.form1.fotoesc.value = \"semarm3\"; num = 4; } } e o da imagem <a onClick=\"menos(imagem)\" href=\"java script:void(0)\">Anterior</a> || <a onClick=\"mais(imagem)\" href=\"java script:void(0)\">Proxima</a><br> <img id=\"imagem\" src=\"imagens/semarm0.jpg\"> alguém ai sabe como arrumar isso?? vlw :D
  24. eu consegui chegar a isso: if (!ereg('^([0-9,a-z,A-Z,_])', $_POST['nome_grupo'])) { mas ainda sim, se tem um ! por exemplo no meio da frase, não retorna o erro
×
×
  • Criar Novo...