Socket with if-loops does not give a consistent result
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 25/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- python
- Domaine
- desktop, networking
Piste de recherche
Commencez au point d’entrée show_markers et suivez la boucle autour de l’état de la case à cocher, des appels à recv et des chemins de shutdown/close du socket. Reproduisez la séquence de trois basculements, puis vérifiez que le retour à l’état coché reçoit des données sans blocage et que le cycle de vie du socket reste valide.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
The program is continuously receiving data from the sender side. And I have a checked/unchecked button when I make it checked it runs the if part...that's good. Now I make it unchecked then else part runs and prints Unchecked going to close socket, so that's also good.
The problem is when I am going to make it again checked (2nd time) to run if part again it just print Checked and my program hangs. Why is this happening? It should receive the data but it hangs. Please tell me the solution.
def show_markers(self):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = socket.gethostbyname('192.168.225.12')
s.connect((host, port))
scale=0
while True:
if self.iconAction.isChecked():
print ('Checked')
m = QgsVertexMarker(self.iface.mapCanvas())
data = s.recv(SIZE)
data1 = s.recv(SIZE)
c = data.decode()
d = data1.decode()
x = float(c)
y = float(d)
print("printing X :", x)
print("printing Y :", y)
rect = QgsRectangle(float(x)-scale, float(y)-scale, float(x)+scale, float(y)+scale)
me = self.iface.mapCanvas()
me.setExtent(rect)
me.refresh()
m.setCenter(QgsPointXY(x, y))
m.setColor(QColor(255, 0, 0))
m.setIconSize(7)
m.setIconType(QgsVertexMarker.ICON_X) # or ICON_CROSS, ICON_X
m.setPenWidth(3)
else:
print('Unchecked going to close socket')
s.shutdown(10)
s.close()
I am assuming it should work like:
- 1st time click on button ---> Checked & if part run [working]
- 2nd time click on button ---> Unchecked & else part run [working]
- 3rd time click on button ---> again it Checked [here it checked but my program hangs & not receiving the data from sender computer]
- Langage dominant
- Jupyter Notebook
- Étoiles
- 5.2k
- Forks
- 5.3k
- Merge moyen
- 4 j 10 h
- PR mergées (30 j)
- 10
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de realpython/materials
-
Ruff lints the whole repo Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
realpython/materials#729 ·
-
п Ouverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 1/100
realpython/materials#763 ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 55/100
realpython/materials#738 ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 45/100
realpython/materials#737 ·
-
проект2 Ouverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 15/100
realpython/materials#725 ·
Toutes les issues de realpython/materials
Issues similaires
-
Startup alerts tell the user to click Save and Apply, but the settings button is labelled Save Ouvertebug good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
alexgorbatchev/simple-ptt#11 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
bug good first issue multicut serialization
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
-
accepted bug via-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
seagle0128/doom-modeline#835 ·