Le premier essai depuis l'apprentissage de Java, j'écrirai sur un problème facile à rencontrer lorsque les débutants apprennent la programmation Socket. En suivant l'exemple du manuel, j'ai tapé le code de communication réseau monothread suivant :
Le code devrait être un must pour les débutants qui souhaitent apprendre la programmation Socket, et la logique est relativement simple. Mais au début, après l'exécution de mes classes TCPServer et TCPClient, les informations sur leur interaction via les flux ne pouvaient pas être imprimées sur la console. J'ai été bloqué ici pendant longtemps, j'ai cherché la raison en ligne et j'ai essentiellement déterminé que cela devait être le cas. être un flux d’entrée ou un flux de sortie bloqué. Mais après de longues tentatives, le problème n’est toujours pas résolu. Plus tard, j'ai accidentellement découvert que la méthode d'instance readLine() de la classe BufferedReader n'était renvoyée qu'après avoir lu le caractère de nouvelle ligne. Ce n'est qu'alors que j'ai découvert la cause du blocage. Il s'est avéré que les informations écrites par mon client et mon serveur étaient affichées en sortie. Le flux n'avait pas du tout de nouvelle ligne. De cette façon, readLine() ne renvoie jamais vraiment, donc les deux extrémités n'écrivent pas de contenu dans le flux de sortie et la console ne peut naturellement pas imprimer le contenu.
Ce problème est en fait d'un niveau assez bas, mais rien ne garantit que les débutants n'y parviendront pas. Veuillez prendre une brève note ici pour vous rappeler de prêter attention aux détails.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!