목록Server&Network/TCP&IP (14)
방프리
1. 프로토콜이란 무엇을 의미하는가? 그리고 데이터의 송수신에 있어서 프로토콜을 정의한다는 것은 어떠한 의미가 있는가? 데이터를 주고 받기 위해 정의한 약속, 규칙을 가지고 있다는 것은 새로운 시스템끼리 연결할 때에도 서로 호환이 되며 데이터가 손상되거나 파손되지 않고 안전하게 주고 받을 수 있는 환경을 조성한다. 2. 연결지향형 소켓인 TCP 소켓의 전송 특성 세가지를 나열하여라. 중간에 데이터가 소멸되지 않고 목적지로 전송 전송 순서대로 데이터가 수신 전송되는 데이터의 경계가 존재하지 않음 3. 디음 중 비 연결지향형 소켓의 특성에 해당하는 것을 모두 고르면? a, c, e 4. 다음 유형의 데이터 송수신에 적합한 타입의 소켓은 무엇인지 결정하고, 그러한 결정을 하게 된 이유를 설명해보자. a/UDP..
1. 네트워크 프로그래밍에서 소켓이 담당하는 역할은 무엇인가? 그리고 소켓이라는 이름이 붙은 이유는 어디에 있는가? 물리적으로 연결된 네트워크상에서의 데이터 송수신에 사용할 수 있는 소프트웨어적인 장치를 의미 연결이라는 의미 2. 서버 프로그램에서는 소켓생성 이후에 listen 함수와 accept 함수를 차례대로 호출한다. 그렇다면 이들의 역할은 각각 무엇인지 비교해서 설명해보자. 전화기로 빗대었을 때 사용자가 전화를 걸 대상의 전화번호를 알아내는 것이 listen, 그리고 전화를 받을 대상자가 현재 전화를 받은 상태가 accept이다. 3. 리눅스의 경우 파일 입출력 함수를 소켓 기반의 데이터 입출력에 사용할 수 있다. 반면 윈도우에서는 이것이 불가능하다. 그렇다면 리눅스에서는 가능하고, 윈도우에서는 ..
Virtualbox 에서 가상 머신을 생성했을 때 저장소 설정에 관련해서 공부할 때 SATA, SCSI 두 가지 유형을 보았습니다. Ubuntu에서는 SATA가 제대로 작동하는데 Suse 9.3버전을 설치하려니 파티션 설정이 잘못되었다고 에러를 뱉어버려 SCSI로 설정을 바꾸었더니 제대로 작동해서 이 김에 공부해볼겸 포스트를 정리하였습니다. SCSI - 소형 컴퓨터 시스템 인터페이스으이 약자로, 주변 장치를 컴퓨터에 연결하기 위해 Apple Macintosh, PC 및 많은 UNIX시스템에서 사용되는 병렬 인터페이스 표준입니다. 가장 초기의 Mac 및 최근의 iMac을 제외하고 거의 모든 Apple Macintosh 컴퓨터에는 디스크 드라이브 및 프린터와 같은 장치를 연결하기 위한 SCSI포트가 있습니다..
Virtualbox 실행 시 컨트롤러를 변경할 때 나타나는 문제입니다. 저장소에서 설정을 바꾸게 되면 자동으로 가상 CD-ROM을 버츄얼 박스가 비워버리게 되는데요 그로 인해 부팅을 할 수 없다는 에러 메시지를 나타내게 됩니다. 해결 방법으로는 우측 상단에 시디 모형 아이콘을 이용해 부팅 iso 파일을 삽입해주면 해결됩니다.
이번에 VMWare에 32bit 리눅스를 설치하면서 알게된 현상입니다. 이제는 보통 Virtual-Machine을 사용하지만 VMWare를 사용하는 곳도 있을 것 같기도 하고.... 왠지 또 나중에 참고할 것 같아서 포스팅합니다 ㅋㅋ VMWare의 경우엔 해당 프로그램이 설치된 OS의 비트를 따라가는 경우가 있다고 합니다. 일방적으로 설정해줄수는 있지만 그게 먹히지 않을 경우도 있다고 하네요 (64비트 운영체제라든가.... 64비트 운영체제라든가....) 그럴경우에 어떻게 해야하는지 vmware 사이트에서 알려줍니다. 해당 가상 머신이 설치된 폴더에 들어간 후 가상머신.vmx 파일에서 monitor_control.disable_longmode=1 이 문구를 추가해주면 됩니다 (*주의 : 바로 실행할 시 ..
게임 서버의 로직과 클라이언트의 로직은 얼핏 보면 비슷하지만 다릅니다? 게임 서버와 클라이언트 둘 다 객체의 행동에 대한 것을 코드로 짜지만 클라이언트에서는 객체의 행동 및 행동에 대한 검사를 하지만 서버에서는 객체의 상태 공유 및 아이템 등의 검사, 유저들의 정보를 저장하는 등의 역할을 맡습니다. 다만 크게 다른 점이 있다면 게임 서버 여러 명을 혼자 상대하는 1 대 다수의 역할을 하고 클라이언트는 1 대 1의 역할을 합니다. 그러다보니 서버는 어쩔 수 없이 쓰레드를 사용할 수 밖에 없죠 ( 모든 서버들이 똑같습니다. ) 클라이언트는 로딩을 제외한 모든 로직이 싱글 쓰레드로 돕니다. 그 이유는 게임을 진행하는 상황에서 멀티 쓰레드를 돌릴 경우 디버깅 자체가 불가능할 뿐만 아니라 어떤 에러가 발생할 지 ..