• 16-12-2013, 23:50:20
    #1
    Arkadaşlar biraz zor bir soru olacak ama ben elimden geldiğince anlatmaya çalışayım.

    import socket
    
    serv = socket.socket()
    servip = '127.0.0.1'
    servport = 2593
    serv.bind((servip, servport))
    #serv.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
    serv.listen(5)
    
    while True:
        client, address = serv.accept()
        print "We got connection from", address
        print client.recv(1024)
        client.send("Connection accepted!\n")
        client.close()
    Öncelikle bu kod bayağı basit bir kod, sadece öğrenmeye çalışıyorum. Şimdi arkadaşlar sorum şu, ben böyle bir server oluşturdum ve Run diyorum, herhangi bir oyun clienti ile 127.0.0.1,2593 bağlantısı yaptığımda servere bağlanıyor yani

    >>> ================================ RESTART ================================
    >>> 
    We got connection from ('127.0.0.1', 60033)
    À¨.PœïÈÑÙÇÄN’
    zÂð|A_P×õ…=aOØö5ý@_Pהµ¥*)늺¢®(늺¢®¨«*ê
    z=
    şeklinde bir cevap alıyorum, buraya kadar sorun yok, ama client oyuna girmiyor çünkü ilerletemiyorum. Ama asıl sorum şu;

    1. Çarpı işaretine tıklayıp programı kill ettiğimde socket açık kalıyor ve işlemlerden socket kapatmadan tekrardan serveri açamıyorum. Aldığım hata bu;

    error: [Errno 10048] Only one usage of each socket address (protocol/network address/port) is normally permitted
    2. Client bağlandığında oyuna girebilecek kadar ilerletebilmem için Clientin servere yolladığı veriyi/paketi her ne ise bulup kabul ettirmem gerekiyor ancak bu clientin yolladığı veriyi nasıl alabilirim? Bunu onaylamanın tam olarak yolu nedir acaba bilginiz varsa yardımcı olursanız sevinirim.

    Teşekkürler.
  • 20-12-2013, 14:46:39
    #2
    #serv.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)

    yorum kodunu kaldırırmısın. windows kullanıyorsun sanıyorum. timeouta takılıyor ve socket yapanmıyor