Đơn giản là tôi đã cố gắng triển khai những gì BufferedStreamReader
thực hiện trong Java. Tôi có một dòng ổ cắm mở và chỉ muốn đọc nó trong một dòng thời trang theo định hướng - từng dòng.C# - StreamReader.ReadLine không hoạt động bình thường!
Tôi có mã máy chủ sau.
while (continueProcess)
{
try
{
StreamReader reader = new StreamReader(Socket.GetStream(), Encoding.UTF8);
string command = reader.ReadLine();
if (command == null)
break;
OnClientExecute(command);
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
Và client-mã sau:
TcpClient tcpClient = new TcpClient();
try
{
tcpClient.Connect("localhost", serverPort);
StreamWriter writer = new StreamWriter(tcpClient.GetStream(), Encoding.UTF8);
writer.AutoFlush = true;
writer.WriteLine("login>user,pass");
writer.WriteLine("print>param1,param2,param3");
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
finally
{
tcpClient.Close();
}
Các máy chủ chỉ đọc dòng đầu tiên (login>user,pass
) và sau đó ReadLine
lợi nhuận rỗng!
Cách dễ nhất để đạt được đầu đọc định hướng dòng này vì nó nằm trong số BufferedStreamReader
của Java? : s
Vui lòng hủy bỏ các đối tượng của bạn tại đây (StreamReader và StreamWriter). Nếu không, bạn có thể gặp phải các sự cố không mong muốn. Đơn giản chỉ cần đặt một khối sử dụng xung quanh chúng (như trong sử dụng (StreamWriter writer = ...) {}), và bạn sẽ được ok – configurator
Không phải là nó có liên quan đến câu hỏi - chỉ là một gợi ý. – configurator
tuyệt vời;) Nhờ – Aleyna