ARITHMETIC OPERATION RESULTED IN AN OVERFLOW.
Olá pessoal,
Consegui um modelo de um chat bem elaborado porem coloquei uma caixa para colocar o ip no servidor, não sei o erro que está acontecendo, porém percebi que quando a ip é pequena ele conecta sem erro tanto em rede interna quando externa, mas quando coloco a ip externa que tem vários dÃgitos dá esse erro, alguém poderia ajudar?
ex: 201.30.1.15 e 192.168.1.5 sem erro (testei e não deu erro)
200.36.152.175 dá erro (caiu minha internet e mudou o ip ai fui testar e deu erro)
Consegui um modelo de um chat bem elaborado porem coloquei uma caixa para colocar o ip no servidor, não sei o erro que está acontecendo, porém percebi que quando a ip é pequena ele conecta sem erro tanto em rede interna quando externa, mas quando coloco a ip externa que tem vários dÃgitos dá esse erro, alguém poderia ajudar?
ex: 201.30.1.15 e 192.168.1.5 sem erro (testei e não deu erro)
200.36.152.175 dá erro (caiu minha internet e mudou o ip ai fui testar e deu erro)
Bom tentei Mudar de ip novamente reiniciando o modem e deu um erro diferente: ip 189.73.198.53
Se o seu projeto está rodando como 32 bits, troque para 64 bits para ver se o erro persiste. Caso não gere mais o erro, então saberemos que o seu projeto está ultrapassando os 2GB de endereçamento permitidos para ele. Para corrigir isso será necessário liberar memória de uma forma mais abrupta.
O erro continua:
Quando coloco o mouse em cima do erro apareceu isso:
Descobri o erro. O tamanho do valor contido na variável SocketCount ultrapassa o limite que é permitido para o int32, por isso que gera o overflow. O lance agora é descobrir porque o valor dessa variável está vindo tão alto. Faça o seguinte então: converta essa variável para int64 e veja se o problema continuará persistindo.
Acho que não tenho conhecimento para isso.. se eu postar o projeto poderia verificar? Posso até tentar se tiver uma explicação..
é só ver onde essa variável foi declarada no projeto. Provavelmente estará assim: dim SocketCount as Integer
Daà você declararia ela assim: dim SocketCount as Int64
Porém, a grande questão mesmo é saber porque ela está ganhando esse valor enorme, que no caso é 1897419951.
O certo seria essa variável ter o tamanho de sockets que foram instanciados na aplicação. Por exemplo, se tem 10 pessoas conectadas, então ela deveria conter o valor 10. Sacou? Está acontecendo alguma coisa no projeito que está fazendo com que essa variável ganhe esse valor imenso. Aà é que está o erro.
Daà você declararia ela assim: dim SocketCount as Int64
Porém, a grande questão mesmo é saber porque ela está ganhando esse valor enorme, que no caso é 1897419951.
O certo seria essa variável ter o tamanho de sockets que foram instanciados na aplicação. Por exemplo, se tem 10 pessoas conectadas, então ela deveria conter o valor 10. Sacou? Está acontecendo alguma coisa no projeito que está fazendo com que essa variável ganhe esse valor imenso. Aà é que está o erro.
Eu não consegui abrir o projeto Server, apenas o Client. Mas dando uma olhadinha pelo bloco de notas, pude perceber que a tal da variável socketCount é um parâmetro da função Listen. Sendo assim, tem que ver como essa função está sendo chamada com seus respectivos parâmetros e verificar porque o valor desse parâmetro está tão alto.
Na pasta sources e na pasta server chegou a tentar abrir o Sockets Example.vbproj ele não seria o server? no botão de conectar (listen) onde tá:
ReDim InUse(63)
Server.Listen(64, txtServePort.Text)
eu coloquei um textbox assim:
Server.Listen(TextBox1.Text, txtServePort.Text)
ReDim InUse(63)
Server.Listen(64, txtServePort.Text)
eu coloquei um textbox assim:
Server.Listen(TextBox1.Text, txtServePort.Text)
O Sockets Example.vbproj não abre o projeto.
Cara, deixa o valor 64 como estava no parâmetro SocketCount da função Listen, pois ali não é o local para se colocar o IP. Aquilo ali é apenas pra dizer quantas máquinas podem se conectar.
Cara, deixa o valor 64 como estava no parâmetro SocketCount da função Listen, pois ali não é o local para se colocar o IP. Aquilo ali é apenas pra dizer quantas máquinas podem se conectar.
Tópico encerrado , respostas não são mais permitidas