Java Socket: Server Not Responding to Client
Dalam senario pengaturcaraan Java Socket, di mana pelanggan menghantar rentetan kepada pelayan, pelayan menggemakan rentetan kembali kepada klien, diperhatikan bahawa pelayan gagal bertindak balas kepada klien. Untuk menyelesaikan isu ini, adalah penting untuk memahami mekanisme asas komunikasi soket.
Latar Belakang Masalah:
Dalam kod yang disediakan, pelanggan menghantar rentetan kepada pelayan, yang diterima dan dicetak oleh pelayan. Walau bagaimanapun, pelayan tidak membalas kepada pelanggan, meninggalkan pelanggan dalam keadaan menunggu. Tingkah laku ini menunjukkan masalah dalam kefungsian tindak balas pelayan.
Punca dan Penyelesaian Akar:
Selepas menganalisis kod yang disediakan, ternyata masalahnya terletak pada penulisan data ke aliran keluaran. Adalah penting untuk memformat data dengan betul sebelum menulis ke strim untuk memastikan kedua-dua pelanggan dan pelayan dapat mentafsirkannya dengan betul.
Isu ini timbul kerana kekurangan aksara baris baharu ("rn") di hujung rentetan yang ditulis pada aliran. Menambah aksara baris baharu adalah perlu untuk menamatkan baris dalam strim, membenarkan penghujung penerima memprosesnya sebagai mesej yang lengkap.
Untuk menyelesaikan masalah, rentetan ditulis pada strim dalam kedua-dua pelayan dan klien hendaklah diubah suai untuk memasukkan "rn" pada penghujungnya. Ini akan mencipta mesej yang diformat dengan betul yang boleh difahami oleh kedua-dua pelayan dan pelanggan.
Kod Pelayan Diubah Suai:
out.write("to end" + "\r\n"); out.flush(); out.close();
Kod Pelanggan Diubah Suai:
string = "end"; out.write(string + "\r\n"); out.flush();
Atas ialah kandungan terperinci Mengapakah pelayan Java Socket saya gagal menjawab permintaan pelanggan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!