Reactie plaatsen 
 
Waardering:
  • 0 stemmen - gemiddelde waardering is 0
  • 1
  • 2
  • 3
  • 4
  • 5
Socket
Auteur Bericht
hshelper Afwezig
Student
*****

Berichten: 763
Lid sinds: 07-2006
Reputatie: 16
Bericht: #1
Socket
Hoi,

Deze code werkt, maar zogauw ik host = "localhost" in host="mijn.ip.adres" verander, krijgt mijn server geen messages meer door? Hoe kan dit?
Code:
# Client program

from socket import *

# Set the socket parameters
host = "localhost"
port = 21567
buf = 1024
addr = (host,port)

# Create socket
UDPSock = socket(AF_INET,SOCK_DGRAM)

def_msg = "===Enter message to send to server===";
print "\n",def_msg

# Send messages
while (1):
    data = raw_input('>> ')
    if not data:
        break
    else:
        if(UDPSock.sendto(data,addr)):
            print "Sending message '",data,"'....."

# Close socket
UDPSock.close()

Supremacy rockz!
11-01-2010 17:22:44
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
atimmer Offline
Kwaliteit = Apple + Google
*****

Berichten: 1.240
Lid sinds: 05-2008
Reputatie: 32
Bericht: #2
RE: Socket
Heb je je port correct geforward?

[/:D]
Bloooooooging
11-01-2010 18:42:32
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
hshelper Afwezig
Student
*****

Berichten: 763
Lid sinds: 07-2006
Reputatie: 16
Bericht: #3
RE: Socket
Ja, nou; ik heb de poorten opengezet in de router en ik heb ook mijn firewall deze poorten opengezet... Als ik op deze website http://www.canyouseeme.org/ kijk, zie ik dat mijn poorten idd bereikbaar zijn.. Ik post als ik dalijk thuis ben wel de code.

[EDIT]
Dit is mijn client script:
Code:
import sys
from socket import *
serverHost = 'xx.xx.x'            # servername is localhost
serverPort = 8080                   # use arbitrary port > 1024

s = socket(AF_INET, SOCK_STREAM)    # create a TCP socket


s.connect((serverHost, serverPort)) # connect to server on the port
s.send('Hello world')               # send the data
data = s.recv(1024)                 # receive up to 1K bytes
print data

Als ik serverHost = "localhost" doe, dan werkt het wel; ik krijg response van mijn serverscript. Maar zodra ik mijn eigen IP adres invullen loopt de hele boel door in een soort oneindige lus. I don't know what er verkeerd is. Heeft iemand een idee?

Supremacy rockz!
(Dit bericht is het laatst bewerkt op 11-01-2010 om 23:11:49 door hshelper.)
11-01-2010 18:53:51
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Violent J Offline
Code Warrior
***

Berichten: 219
Lid sinds: 04-2006
Reputatie: 19
Bericht: #4
RE: Socket
probeer het eens met telnet:
telnet localhost 8080
telnet 127.0.0.1 8080
telnet jou.ip.adres 8080

May the source be with you
12-01-2010 10:27:07
Alle berichten van deze gebruiker zoeken Reageren op dit bericht
hshelper Afwezig
Student
*****

Berichten: 763
Lid sinds: 07-2006
Reputatie: 16
Bericht: #5
RE: Socket
Dankje, maar het werkt niet. Ik krijg de volgende error te zien als ik in mijn code mijn ip adres invul:
Code:
error: [Errno 10049] Het aangevraagde adres is niet geldig in de context van het adres

Supremacy rockz!
12-01-2010 17:08:48
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Jasper Online
Ep2 Admin
******

Berichten: 15.056
Lid sinds: 04-2006
Reputatie: 223
Bericht: #6
RE: Socket
(12-01-2010 17:08:48)hshelper schreef:  Errno 10049

http://www.pscs.co.uk/helpdesk/vpop3help..._10049.htm

Om de zeven minuten denkt de vrouw dat de man alleen maar aan seks denkt.
13-01-2010 13:00:47
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Violent J Offline
Code Warrior
***

Berichten: 219
Lid sinds: 04-2006
Reputatie: 19
Bericht: #7
RE: Socket
waar krijg je die error? bij de client? of de server?

May the source be with you
13-01-2010 13:40:10
Alle berichten van deze gebruiker zoeken Reageren op dit bericht
hshelper Afwezig
Student
*****

Berichten: 763
Lid sinds: 07-2006
Reputatie: 16
Bericht: #8
RE: Socket
Nou kijk, ik wil een computer met een telefoon verbinden via internet. Ik dacht dat sockets hier een goede manier voor waren? Maar dan moet je door heel veel poorten heen en dergelijke. Is er een makkelijkere manier?

Supremacy rockz!
14-01-2010 15:37:00
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
atimmer Offline
Kwaliteit = Apple + Google
*****

Berichten: 1.240
Lid sinds: 05-2008
Reputatie: 32
Bericht: #9
RE: Socket
Skype?

[/:D]
Bloooooooging
14-01-2010 16:27:49
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Neophyte Offline
Senior Member
****

Berichten: 672
Lid sinds: 08-2006
Reputatie: 35
Bericht: #10
RE: Socket
Je kan vaak niet met je eigen IP connecten heeft met bepaalde instellingen van NAT te maken in je router

14-01-2010 22:17:06
Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Ikke Offline
De enige echte
******

Berichten: 3.123
Lid sinds: 04-2006
Reputatie: 67
Bericht: #11
RE: Socket
Het lijkt mij met NAT opzich te maken hebben. De poort die je gebruikt moet je doorsluizen naar het interne ip waar je op zit.

- OOP: Make simple things complex to make complex things simple
- Op deze planeet is stompzinnigheid nu eenmaal overvloediger dan zuurstof.
- The most constant factor of software is change
15-01-2010 11:14:19
Alle berichten van deze gebruiker zoeken Reageren op dit bericht
hshelper Afwezig
Student
*****

Berichten: 763
Lid sinds: 07-2006
Reputatie: 16
Bericht: #12
RE: Socket
Mmmm, ik heb nu vanalles geprobeerd. Deze optie geeft geen error, maar doet niks als ik ze beide draai:
Server:
Code:
import socket
import sys

print "Server started"

# SOCK_DGRAM is the socket type to use for UDP sockets
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

sock.bind(("0.0.0.0", 999))
data,addr = sock.recv(1024)

print "Received: %s" % data
print "Addr: %s" % addr

Client:
Code:
import socket
mySocket = socket.socket ( socket.AF_INET, socket.SOCK_DGRAM )
mySocket.sendto ( 'Wherefore art thou?', ( 'mijn ip', 999 ) )
#data, server = mySocket.recvfrom ( 100 )
#print data

Supremacy rockz!
15-01-2010 16:58:13
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
hshelper Afwezig
Student
*****

Berichten: 763
Lid sinds: 07-2006
Reputatie: 16
Bericht: #13
RE: Socket
Solved: Ik heb de port geforward op de router, en nu kan ik van buitenaf een connectie maken :) Alleen het connecten gaat erg traag :( (<1s, maar toch traag). En is er trouwens een manier om de poort automatisch open te zetten, zonder dat ik naar mijn router instellingen hoeft?
Dit is de code op mijn mobiel (waarschijnlijk ligt de traagheid aan de manier van socketberichten versturen):
Code:
from socket import *
import appuifw, e32, key_codes

s = None

def connect():
    global s
    myHost = 'MIJNIP'
    myPort = MIJNPOORTNUMMER
    s = socket(AF_INET, SOCK_STREAM)    # create a TCP socket
    s.connect((myHost, myPort))            # bind it to the server port

def bericht(x):
    global s
    connect()
    s.send(x)
    s.close()              # close socket
    s = None
    
canvas = appuifw.Canvas()
appuifw.app.body = canvas

def omhoog():
   print "Pijl omhoog"
   bericht("Pijl omhoog")

def omlaag():
   print "Pijl omlaag"
   bericht("Pijl omlaag")

def rechts():
   print "Pijl rechts"
   bericht("Pijl rechts")

def links():
   print "Pijl links"
   bericht("Pijl links")
  
canvas.bind(key_codes.EKeyUpArrow, omhoog)
canvas.bind(key_codes.EKeyDownArrow, omlaag)
canvas.bind(key_codes.EKeyRightArrow, rechts)
canvas.bind(key_codes.EKeyLeftArrow, links)

app_lock = e32.Ao_lock()
app_lock.wait()

Supremacy rockz!
(Dit bericht is het laatst bewerkt op 16-01-2010 om 15:59:49 door hshelper.)
16-01-2010 15:03:52
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Reactie plaatsen 


Ga naar locatie:


Contact opnemen | Ep2 | Naar boven | Naar inhoud | Archiefmodus | RSS-syndicatie