出于教育目的,我正在编写一个通过SQL查询的程序。它应该像这样工作:
但接收不会返回任何数据。
private static byte[] ReadToEnd(Socket mySocket)
{
byte[] b = new byte[mySocket.ReceiveBufferSize];
int len = 0;
using (MemoryStream m = new MemoryStream())
{
while (mySocket.Poll(1000000, SelectMode.SelectRead) &&
(len = mySocket.Receive(b, mySocket.ReceiveBufferSize, SocketFlags.None)) > 0)
{
m.Write(b, 0, len);
Console.WriteLine("Я тут");
}
Console.WriteLine("и тут");
return m.ToArray();
}
}
static void Main(string[] args)
{
TcpListener myTCP = new TcpListener(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8888));
Console.WriteLine("Прослушиваю порт");
while (true)
{
myTCP.Start(); // Запускаю процесс прослушивания
if (myTCP.Pending()) // Если есть запрос
{
Console.WriteLine("Соединение добавлено в очередь");
using (Socket myClient = myTCP.AcceptSocket()) // То создаю сокет для этого запроса
{
if (myClient.Connected) // Если сокет открыт, то считываю поток байтов от клиента
{
Console.WriteLine("Открываю сокет для считывания запроса");
byte[] sqlQuery = new byte[myClient.ReceiveBufferSize];
sqlQuery = ReadToEnd(myClient);
}
}
}
}
}