네트워크

CS

[Network] TCP Socket Programming - 데이터 전송하기

목표 이번 글에서는 TCP Socket을 직접 만들어보면서 TCP에 대한 이해를 높임과 동시에 TCP 서버도 만들어보겠습니다. 이 글에서는 데이터 전송하기까지만 다뤄보겠습니다. TCP Socket TCP Client의 흐름도 TCP에서는 누구와 통신하고 있는지 먼저 정하고 통신이 진행됩니다. 그리고 누구와 통신한다고 정해져 있기 때문에 상대와 어떤 통신을 했는지 기록을 하게 됩니다. 이 기록을 State라고 합니다. Client의 connect()는 통신할 상대와 가상의 연결을 맺습니다. UDP 하고 가장 큰 다른 점은 클라이언트 측에서 socket을 만들고 connect를 한다는 점입니다. 가상의 연결이 맺어지면 UDP의 sendto(), recvfrom() 같은 데이터를 보낼 때마다 명시해야 했던 내..

CS

[Network] Socket Programming 메모리 관리

목표 메모리를 다루지 않는 프로그래밍 언어는 없습니다. 단지 C/C++처럼 그걸 명시적인 포인터로 노출하지 않을 뿐입니다. 그리고 그 언어들이 제공하는 것은 단지 "메모리 할당/해제" 일 뿐 메모리 복사에 대한 의사 결정은 해주지 않습니다. 즉, 불필요한 메모리 복사인지 아닌지. 복사를 감수할 정도인지 아닌지는 여전히 프로그래머가 결정해야 되고, 이때 메모리 구조에 대한 이해 없이는 불가능합니다. 이 글에서는 Socket Programming 에서 메모리 관리에 대해 알아보겠습니다. sendto() 함수의 동작 Q) 지금까지 문자열 전송에 대해서만 다뤘는데 정수는 어떻게 보내야 하나요? sendto 함수의 인자는 다음과 같습니다. int numBytes = sendto(s, buf.c_str(), buf..

진세박
'네트워크' 태그의 글 목록