간단한 HTTP 서비스를 만들기위한 다음 문서를 읽었습니다. Create a Simple Threaded HTTP Server with C# 구현하기 전에 저는 약간의 딜레마에 빠졌습니다.HTTP 서버 - 응답 듣기
최대 대상 수를 동시에 초과하는 여러 대상으로 HTTP 요청을 보내고 각 대상에서 응답을받는 서비스가 있습니다. 요청이 올바르게 처리되었는지 여부는 응답이 짧거나, 상태 (200이면 OK 또는 일부 다른 코드) 만 나타납니다.
위의 기사는 차단되어 있고 요청을 수신하는 while 루프에서 수신기를 만듭니다.
23 private static void Listen()
24 {
25 listener.Start();
26 WriteLog("Listening On: " + port.ToString());
27
28 while (true)
29 {
30 WriteLog("Waiting for connection...");
31 TcpClient client = listener.AcceptTcpClient();
32 Thread listenThread
= new Thread(new ParameterizedThreadStart(ListenThread));
33 listenThread.Start(client);
34 }
35 }
기기에 요청을 보내고 각각의 응답을 수신해야합니다. 하나의 응답을 얻고 루프가 listen 명령 (31)으로 돌아갈 때까지 다른 응답이 건너 뛸 수 있습니까?
제한된 양의 HTTP 요청을 처리하는 경우 각 수신기에 대한 수신기를 만들어야합니까? 아니면 하나의 수신기에 대해 수신기를 만들어야합니까?
"응답 듣기"? 일반적으로 요청을 보내고 응답을받습니다. 이것은 HttpListener에 대한 설명이 아니라 일반적인 이전 HTTP 요청입니다. 왜 양쪽 끝을 듣고 있어야합니까? 당신은 원격 장치에 충돌했다고 말하면서, 자신의 (별도의) 요청을 당신에게 되 돌린다. 요청 시작에 대한 응답을 보내는 것이 더 낫지 않습니까? 최소한 당신이 실제로하려는 것을 혼란스럽게합니다. – spender
@spender 알겠습니다. 내가 그것에 대해 철저히 생각하지 않았을 수도 있습니다. 나의 목표는 긴 목적지리스트에 정보를 보내는 것이다. 각 정보 전송에는 작은 쿼리 요청 또는 대상에 대한 파일 전송이 포함될 수 있습니다. 한 번에 최대 X 개의 전송을 동시에 제출하고 응답을 기다리고 싶습니다. 제 경우에는 간단한 오래된 요청으로 충분할 수 있습니까? 감사 – Guy