पढ़ा है मैंने एक साधारण टीसीपी क्लाइंट और सर्वर लिखा है। समस्या ग्राहक के साथ निहित है।लूप जब तक टीसीपी क्लाइंट प्रतिक्रिया पूरी तरह से
मुझे सर्वर से पूरी प्रतिक्रिया पढ़ने में कुछ परेशानी हो रही है। मुझे धागे को सभी डेटा भेजने की अनुमति देने के लिए सोना चाहिए।
मैंने इस कोड को एक लूप में बदलने के लिए कुछ बार कोशिश की है जो सर्वर को डेटा भेजने के समाप्त होने तक चलता है।
// Init & connect to client
TcpClient client = new TcpClient();
Console.WriteLine("Connecting.....");
client.Connect("192.168.1.160", 9988);
// Stream string to server
input += "\n";
Stream stm = client.GetStream();
ASCIIEncoding asen = new ASCIIEncoding();
byte[] ba = asen.GetBytes(input);
stm.Write(ba, 0, ba.Length);
// Read response from server.
byte[] buffer = new byte[1024];
System.Threading.Thread.Sleep(1000); // Huh, why do I need to wait?
int bytesRead = stm.Read(buffer, 0, buffer.Length);
response = Encoding.ASCII.GetString(buffer, 0, bytesRead);
Console.WriteLine("Response String: "+response);
client.Close();
ग्राहक को समाप्त होने पर पता लगाने के लिए क्लाइंट को कुछ तरीका चाहिए (उदाहरण के लिए, विशेष समाप्ति अनुक्रम के लिए लंबाई उपसर्ग) – SLaks
StreamReader http://msdn.microsoft.com/en-us/library/system का उपयोग करने का प्रयास करें। io.streamreader.aspx – David
StreamReader कैसे मदद करेगा? यह नहीं जानता कि सर्वर कब समाप्त होता है। –