Toon posts:

vb socketconnectie

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Ik heb een klein programma gemaakt die via een ander proggie een socket connectie opent zodat ze met elkaar text uit kunnen wisselen. Geen probleem. Het eerste programma luistert en het ander probeert te openen. Op mijn lokale netwerk werkt het uitstekend. Maar zodra ik het via internet probeer werkt het niet meer. Komt dit doordat het te lang duurt om mijn ip-nummer op te zoeken? (ik werk dus niet via een webserver (is hier spraken van een peer-2-peer verbinding?)

alvast bedankt.

Verwijderd

Firewall misschien? BTW als je chello hebt, chello blockt volgens mij in sommige gebieden P2P verbindingen naar dichtbijzijnde computers (dus in dezelfde straat/wijk). Heb je wel het externe IP-adres gebruikt, en als je een router hebt die port geforward naar de goede pc?

Verwijderd

Topicstarter
JA ik heb een extern ip-adres gebruikt. Nee ik zit niet achter een firewaal en nee het andere programmatje werd aan de andere kant van nederland opgestart op iemand anders zijn pc dus niet in dezelfde wijk. Kan het zijn dat ik het connectie maken in een lusje moet zetten dat zichzelf continu herhaald omdat je anders een vorm van time out krijgt voordat hij mijn ip heeft gevonden?

Verwijderd

Post je code eens (ik ken geen VB, maar de standaard socket functies moet ik wel herkennen). Verder is het idd belangrijk dat je pc direct op het internet staat en idd niet achter een router/gateway. Je zegt dat je programma 'luistert', de vraag is dan natuurlijk op welk interface en bijbehorend IP address.

Als je het programma zelf gemaakt, moet je hier iig van op de hoogte zijn.

Verwijderd

Verwijderd schreef op 02 oktober 2002 @ 18:46:
Kan het zijn dat ik het connectie maken in een lusje moet zetten dat zichzelf continu herhaald omdat je anders een vorm van time out krijgt voordat hij mijn ip heeft gevonden?
ik snap niet wat je bedoeld, maar het lijkt me nergens voor nodig...
een IP vinden ??? dat doen routers voor je :)

Verwijderd

Topicstarter
sock.RemotePort = 1412
sock.RemoteHost = ipnr.Text (ipnummer andere programma-tje)
sock.Connect

(dit is de andere kant)

Private Sub sock2_ConnectionRequest(ByVal requestID As Long)
status.AddItem "Er wordt een verbinding gemaakt..."
If sock2.State <> sckClosed Then sock2.Close
sock2.Accept requestID
status.AddItem "Verbonden..."
End Sub

Op mijn eigen netwerk werkt dit perfect.

Verwijderd

Topicstarter
het programma dat de connectie probeert te maken geeft de melding :
The attempt to connect timed out

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 28-08 17:06

Sponge

Serious Game Developer

Het lijkt misschien offtopic (maar dat is het niet bij een bepaald antwoord ;)), maar wat voor provider heb je?

Verwijderd

Topicstarter
Chello

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 28-08 17:06

Sponge

Serious Game Developer

Hmm, is dus niet het probleem waar ik aan dacht.

De 'server 'staat wel op .Listen om te luisteren? (Ervan uit gaande dat je TCP gebruikt)

En anders, probeer eens een voorbeeld van www.pscode.com of www.vbip.com om zeker te zijn dat het je code is of iets anders :)

  • johnwoo
  • Registratie: Oktober 1999
  • Laatst online: 15:49

johnwoo

3S-GTE

Verwijderd schreef op 02 oktober 2002 @ 18:59:
sock.RemotePort = 1412
sock.RemoteHost = ipnr.Text (ipnummer andere programma-tje)
sock.Connect
Je gaat na deze Connect call toch niet meteen data overgooien he? Dat zou op je LAN onder bepaalde omstandigheden misschien nog wel gaan (verbinding erg snel in stand), maar het is absoluut fout. Je kan pas data gaan versturen als het Connect event afgevuurd is.

4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1


Verwijderd

Topicstarter
Nee ik gooi daarna niet meteen data over. Pas als de connectie tot stand is gebracht.

Ik zal de situatie nog een keer kort uitleggen (ik heb een nieuw programma gemaakt met behulp van flash en een socket connectie maar wederom hetzelfde probleem): SITUATIE:

1. Ik heb een programma in Visual Basic gemaakt. Heel simpel kwa opzet. Het programma luistert naar een poort en indien er een connection request binnen komt dan accepteerd hij die.

2. Ik heb een kleine flash movie gemaakt die via een socket een connectie probeerd te openen met een ipnummer en een poortnummer (hetzelfde poortnummer als waarop het visual basic programma luistert)

ALLES WERKT PERFECT! verbinding wordt gemaakt en ze kunnen data uitwisselen. MAAR: Als ik de flash movie upload naar mijn webserver en via mijn brouwser weer de flash movie open dan werkt het in 1 keer niet meer.????

- Ik heb geen lokaal ipnummer gebruikt (C-klasse netwerk) , maar mijn chello ipnummer.
- Als ik alles test op het netwerk dan werkt het perfect dus ik heb ook geen fouten gemaakt in de flash movie en in de VB applicatie.
- JA, ik heb een poort nummer hoger dan 1024 gebruikt omdat je anders via flash geen socket connectie kan openen.

Is er echt niemand die een idee heeft???

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 08:15

LauPro

Prof Mierenneuke®

Zet is een stuk code hiero neer. Ik zie dus dat je bestanden gaat verzenden via je progje?

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Verwijderd schreef op 03 oktober 2002 @ 14:19:
Als ik de flash movie upload naar mijn webserver en via mijn brouwser weer de flash movie open dan werkt het in 1 keer niet meer.????


Klopt.. Security restricty... Een flash filmpje mag (net als een java applet trouwens) alleen verbinding maken met de computer waarvandaan deze gedwonload is. Staat de flash op www.blaat.nl? Dan mag ie alleen maar sockets openen naar www.blaat.nl.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Uiteindelijk hoop ik ook bestanden te verzenden maar ik ben nu allang blij als ik gewoon plain tekst kan verzenden :-) ik wil best wat code neerzetten, maar zoals ik al zei, beide programma's werken gewoon op mijn thuis netwerk. Dus ik zie niet in hoe er een fout in mijn code kan zitten als het gewoon werkt (thuis) ik heb het gevoel dat het komt doordat het flash proggie op mijn website mijn chello ipnummer niet kan vinden. Volgens mij is er spraken van een P-2-P verbinding omdat ik geen proggie op mijn server heb hangen , maar een directe verbinding maak van pc1 met pc 2. Mijn chello ipnummer wordt zeker niet op een DNS server opgeslagen, dus dan snap ik wel dat PC2 mijn PC niet kan vinden. Er zijn immers miljarden ipnummers. Heeft er anders iemand al een keer iets gedaan met een peer 2 peer verbinding??

Verwijderd

Topicstarter
Kan ik hieruit opmaken dat ik ook een programma moet maken dat op de server draait die het flash bestand en de op mijn PC draaiende VB applicatie met elkaar verbind?

Verwijderd

Topicstarter
Janoz schreef op 03 oktober 2002 @ 14:36:

[...]


Klopt.. Security restricty... Een flash filmpje mag (net als een java applet trouwens) alleen verbinding maken met de computer waarvandaan deze gedwonload is. Staat de flash op www.blaat.nl? Dan mag ie alleen maar sockets openen naar www.blaat.nl.
En wat nou als ik het ipnummer en portnummer waar over de flash movie een socket connectie probeert te maken forward naar het ipnummer en portnummer van mijn pc? trapt flash daarin. of werkt dat allemaal niet zo>?
Pagina: 1