send2 02_08_네트워크 프로그래밍_Session #3_BufferList Q1. 개선을 위해 작업한 내용들을 나열해 보세요 Q2. 더 개선할 점은 뭐가 있을까? 답 1. recvArgs도 _sendArgs처럼 Session클래스로 옮기고 인터페이스를 맞춰 준다. 그로 인한 변화를 수정해 준다. 한번에 많은 _sendArgs를 보내기 위해 SetBuffer대신 BufferList를 사용한다. List _pendingList = new List();를 class Session에 만들어 주고, RegisterSend에서 _pendingList를 Clear해준 다음, while문으로 _sendQueue.Count가 0보다 클동안 _sendQueue를 Dequeue해서 하나씩 buff에 넣어주고, 그걸 _pendingList에 하나하나 Add(new ArraySegment()인터페이스.. Server programming 2023. 4. 4. 02_07_네트워크 프로그래밍_Session #2_Send Q1. SocketAsyncEventArgs 를 재사용하기 위해 어떻게 수정 했는가? Q2. OnSendCompleted에서 _sendQueue에 쌓여있으면 어떻게 했는가? Q3. 아직 부족한 점은 무엇인가? Q4. Send 함수에서 사용된 SocketAsyncEventArgs와 OnSendCompleted 함수는 어떤 역할을 하나요? Q5. 이번 시간에 한 작업을 요약해 보세요. Q1. SocketAsyncEventArgs를 재사용하기 위해서는 RegisterSend나 RegisterRecv를 호출할 때마다 새로운 SocketAsyncEventArgs 객체를 생성하는 것이 아니라, 미리 만들어 놓은 SocketAsyncEventArgs 객체를 사용하면 됩니다. 이렇게 하면 객체 생성에 따른 오버헤드가 .. Server programming 2023. 4. 4. 이전 1 다음