ARITHMETIC OPERATION RESULTED IN AN OVERFLOW.

WARZ 05/06/2015 18:57:16
#447444
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)
WARZ 05/06/2015 21:36:43
#447450
Bom tentei Mudar de ip novamente reiniciando o modem e deu um erro diferente: ip 189.73.198.53
JABA 05/06/2015 22:14:26
#447451
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.
WARZ 06/06/2015 01:15:55
#447454
O erro continua:
WARZ 06/06/2015 01:18:37
#447455
Quando coloco o mouse em cima do erro apareceu isso:
JABA 06/06/2015 01:34:02
#447456
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.


WARZ 06/06/2015 01:44:56
#447458
Acho que não tenho conhecimento para isso.. se eu postar o projeto poderia verificar? Posso até tentar se tiver uma explicação..
JABA 06/06/2015 02:26:41
#447459
é 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.

JABA 06/06/2015 03:36:10
#447461
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.
WARZ 06/06/2015 10:03:35
#447462
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)
JABA 06/06/2015 11:54:53
#447465
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.
Página 1 de 2 [14 registro(s)]
Tópico encerrado , respostas não são mais permitidas