Yardım Python kod içerisindeki çözemediğim if else sorunu

Bu konuyu okuyanlar

NoobFly

Öğrenci
Katılım
29 Mart 2021
Mesajlar
11
Reaksiyon puanı
5
Puanları
3
Yaş
39
Sunucu kodu:
Python:
import socket
import os

host = "192.168.1.103"
port = 9000

try:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind((host, port))
    print("socket {} nolu porta bağlandı".format(port))
    s.listen()     
except socket.error as msg:
    print("Hata:",msg)

while True:
    c, addr = s.accept()     
    print('Gelen bağlantı:', addr)
 
    mesaj = 'Bağlantı onay'
    c.send(mesaj.encode('utf-8'))

    onaykodu = ("9876")
    yanit = c.recv(1024)

    gelenyanit = print(yanit.decode("utf-8"))

    if("gelenyanit" == "onaykodu"):
        print("onay")
    else:
        print("red")
        c.close()

Client kodu:
Python:
import socket
                
s = socket.socket()         

host = "192.168.1.103"
port = 9000               

try:
    s.connect((host, port))

    yanit = s.recv(1024)
    print(yanit.decode("utf-8"))

    mesaj = ("9876")
    s.send(mesaj.encode('utf-8'))

    s.close()
except socket.error as msg:
    print("Hata", msg)

Amaçladığım olay eğer client tarafından 9876 kodu bana gönderilir ise ekrana onay yazılması lakin doğru kodu bile göndersem red cevabı çıkarılıyor
 

Eminkrkt

Jet Sesi, Özgürlüğün Sesidir!
Moderatör
Katılım
3 Mayıs 2021
Mesajlar
2,201
Çözümler
8
Reaksiyon puanı
1,803
Puanları
113
Python:
import socket
import os

host = "192.168.1.103"
port = 9000

try:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind((host, port))
    print("socket {} nolu porta bağlandı".format(port))
    s.listen()     
except socket.error as msg:
    print("Hata:",msg)

while True:
    c, addr = s.accept()     
    print('Gelen bağlantı:', addr)
 
    mesaj = 'Bağlantı onay'
    c.send(mesaj.encode('utf-8'))

    onaykodu = 9876
    yanit = c.recv(1024)

    gelenyanit = print(yanit.decode("utf-8"))

    if(gelenyanit == onaykodu):
        print("onay")
    else:
        print("red")
        c.close()

Şeklinde dener misiniz ?
 

NoobFly

Öğrenci
Katılım
29 Mart 2021
Mesajlar
11
Reaksiyon puanı
5
Puanları
3
Yaş
39
Python:
import socket
import os

host = "192.168.1.103"
port = 9000

try:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind((host, port))
    print("socket {} nolu porta bağlandı".format(port))
    s.listen()    
except socket.error as msg:
    print("Hata:",msg)

while True:
    c, addr = s.accept()    
    print('Gelen bağlantı:', addr)
 
    mesaj = 'Bağlantı onay'
    c.send(mesaj.encode('utf-8'))

    onaykodu = 9876
    yanit = c.recv(1024)

    gelenyanit = print(yanit.decode("utf-8"))

    if(gelenyanit == onaykodu):
        print("onay")
    else:
        print("red")
        c.close()

Şeklinde dener misiniz ?
Maalesef hala red cevabı veriyor
 

Eminkrkt

Jet Sesi, Özgürlüğün Sesidir!
Moderatör
Katılım
3 Mayıs 2021
Mesajlar
2,201
Çözümler
8
Reaksiyon puanı
1,803
Puanları
113
gelenyanit değişkenini neden print olarak alıyorsunuz


Python:
if(9876 == onaykodu):
        print("onay")

şunu denermisiniz
 

NoobFly

Öğrenci
Katılım
29 Mart 2021
Mesajlar
11
Reaksiyon puanı
5
Puanları
3
Yaş
39
gelenyanit değişkenini neden print olarak alıyorsunuz


Python:
if(9876 == onaykodu):
        print("onay")

şunu denermisiniz
daha sonrasında input ile onay kodunu almak için o şekilde yapmıştım bu şekilde çalıştı teşekkürler
Mesaj otomatik birleştirildi:

gelenyanit değişkenini neden print olarak alıyorsunuz


Python:
if(9876 == onaykodu):
        print("onay")

şunu denermisiniz
Lakin bu sefer yanlış koda dahi olsa onay veriyor
Mesaj otomatik birleştirildi:

Kodda ufak bir hatayı düzelttikten sonra bana gelen mesaj utf-8 olarak encode edilmiş halde bunu python decode edip başka bir değişkene atarsa bu sorunu çözebilirim diye düşünüyorum
Mesaj otomatik birleştirildi:

Python:
import socket
import os

host = "192.168.1.103"
port = 9000

try:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind((host, port))
    print("socket {} nolu porta bağlandı".format(port))
    s.listen()     
except socket.error as msg:
    print("Hata:",msg)

while True:
    c, addr = s.accept()     
    print('Gelen bağlantı:', addr)
 
    mesaj = 'Bağlantı onay'
    c.send(mesaj.encode('utf-8'))

    onaykodu = 9876
    yanit = c.recv(1024)
    print(yanit.decode("utf-8"))
    yanit2 = yanit.decode("utf-8")

    if(yanit2 == "9876"):
        print("onay")
    else:
        print("red")
        c.close()

Şu şekilde denediğim zaman hatasız çalışmakta
 
Son düzenleme:
Üst