Neler Yeni

python socket modülü servere 2 client ile nasıl mesaj atabilirim?

Egec3535

80+ Bronze
Katılım
14 Haziran 2021
Mesajlar
512
Dahası  
Reaksiyon skoru
117
İsim
Ege
nasıl bağlayabilirim? birisi mesaj atıyor diğeri atmıyor.

kodlar:
server
import socket
import time

HOST='xxxx'
PORT= xxxx
ADDR=(HOST,PORT)
try:
server=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print ("socket oluşturuldu...")
server.bind(ADDR)
print("Socket {} nolu porta bağlandı".format(PORT))

server.listen(5)
print("Socket dinleniyor bağlantı bekleniyor...")
except socket.error as bildirim:
print("Hata:",bildirim)
while True:
c,ADDR= server.accept()
print("1. Bağlantı başarılı 2. bağlantı bekleniyor!")
print("gelen bağlantı:", ADDR)
server.listen(5)
egec,ADDR= server.accept()
print("2. bağlantı başarılı")
print("gelen bağlantı:", ADDR)
mesaj=("Bağlantı başarılı!")
c.send(mesaj.encode("utf8"))
while True:
mesaj=c.recv(1024)


print(mesaj)

while True:
c2=egec.recv(1024)
print(c2)

not(buradaki sorun c clienti mesaj attıktan sonra normal olarak egec clientinin mesajı ekrana yansıtılıyor c clienti mesaj atmazsa mesaj=c.recv(1024) komutunu bekliyor normal olarak bunu nasıl çözebilirim? düşündüğüm şey 2 döngüyü aynanda başlatsın yada c.recv den mesaj çektiğinde printlesin sırayla olmasın bir nevi egec.recv ile c.recv i dinlesin ve kim mesaj attıysa printlesin gibi?
Mesaj otomatik birleştirildi:

nasıl bağlayabilirim? birisi mesaj atıyor diğeri atmıyor.

kodlar:
server
import socket
import time

HOST='xxxx'
PORT= xxxx
ADDR=(HOST,PORT)
try:
server=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print ("socket oluşturuldu...")
server.bind(ADDR)
print("Socket {} nolu porta bağlandı".format(PORT))

server.listen(5)
print("Socket dinleniyor bağlantı bekleniyor...")
except socket.error as bildirim:
print("Hata:",bildirim)
while True:
c,ADDR= server.accept()
print("1. Bağlantı başarılı 2. bağlantı bekleniyor!")
print("gelen bağlantı:", ADDR)
server.listen(5)
egec,ADDR= server.accept()
print("2. bağlantı başarılı")
print("gelen bağlantı:", ADDR)
mesaj=("Bağlantı başarılı!")
c.send(mesaj.encode("utf8"))
while True:
mesaj=c.recv(1024)


print(mesaj)

while True:
c2=egec.recv(1024)
print(c2)

not(buradaki sorun c clienti mesaj attıktan sonra normal olarak egec clientinin mesajı ekrana yansıtılıyor c clienti mesaj atmazsa mesaj=c.recv(1024) komutunu bekliyor normal olarak bunu nasıl çözebilirim? düşündüğüm şey 2 döngüyü aynanda başlatsın yada c.recv den mesaj çektiğinde printlesin sırayla olmasın bir nevi egec.recv ile c.recv i dinlesin ve kim mesaj attıysa printlesin gibi?
....
 
Son düzenleme:

XRatSon

80+
Katılım
4 Mart 2022
Mesajlar
6
Dahası  
Reaksiyon skoru
3
İsim
XRatSon
düşündüğüm şey 2 döngüyü aynanda başlatsın
Ozaman threading modülüne bakabilirsiniz.
mesaj çektiğinde printlesin sırayla olmasın bir nevi egec.recv ile c.recv i dinlesin ve kim mesaj attıysa printlesin gibi?
Şöyle bakılabilir veya şöyle

Ayrıca kodları yazarken okunaklığı arttırmak ve Syntax hatasının önüne geçmek için üç noktaya tıkladıktan sonra </> butonuna basıp paylaşmanız.
 

Ekler

  • Ekran görüntüsü 2022-03-05 160457.png
    Ekran görüntüsü 2022-03-05 160457.png
    5.9 KB · Hit: 51
Yeni mesajlar Yeni Konu Aç      

SON KONULAR

Forum istatistikleri

Konular
1,063,706
Mesajlar
9,561,673
Üyeler
168,991
Son üye
blackandwhite23
Top Bottom