▶오류
로그인, 회원가입 구현하는데 포트가 localhost: 5000으로 안하고 다른 서버로 이동해서 사용되어 구현 오류가 남.
▶해결 방법
아래 사진처럼 port 쓰여져 있는 곳으로 주소로 구현을 해야함.
항상 확인하고 실행하자!
소켓통신 이해가 필요!!
소켓이란?
- 프로세스가 네트워크 세계로 데이터를 내보내거나 혹은 데이터를 받기 위한 실제적인 창구역할
- 프로세스가 데이터를 보내거나 받기 위해서는 반드시 소켓을 열어서 소켓에 데이터를 써내보내거나 소켓으로부터 데이터를 읽어들어야 한다.
- 소캣은 프로토컬, IP주소, 포트 넘버로 정의된다.
- 소켓은 떨어져 있는 두 호스트를 연결해주는 도구로써 인터페이스 역할
- 데이터를 주고 받을 수 있는 구조체
- 소켓을 통해 데이터 통로가 만들어집니다.
- 소켓은 역할에 따라 서버 소켓, 클라이언트 소켓으로 구분됩니다.
서버(Server)
클라이언트 소켓의 연결 요청을 대기하고, 연결 요청이 오면 클라이언트 소켓을 생성하여 통신이 가능하게 합니다.
- socket() 함수를 이용하여 소켓을 생성
- bind() 함수로 ip와 port 번호를 설정
- listen() 함수로 클라이언트의 접근 요청에 수신 대기열을 만들어 몇 개의 클라이언트를 대기 시킬지 결정
- accept() 함수를 사용하여 클라이언트와의 연결을 기다림
클라이언트(Client)
실제로 데이터 송수신이 일어나는 것을 클라이언트 소켓이다.
- socket() 함수로 가장 먼저 소켓을 연다.
- connect() 함수를 이용하여 통신 할 서버의 설정된 ip와 port 번호에 통신을 시도합니다.
- 통신을 시도 시, 서버가 accept() 함수를 이용하여 클라이언트의 socket descriptor를 반환
- 이를 통해 클라이언트 서버가 서로 read(), write()를 하며 통신의 과정 반복
소켓 종류
스트림(TCP)
- 양방향으로 바이트 스트림을 전송, 연결 지향성
- 오류 수정, 정송처리, 흐름제어 보장
- 송신된 순서에 따라 중복되지 않게 데이터를 수신 -> 오버헤드가 발생
- 소량의 데이터보다 대량의 데이터 전송에 적함 -> TCP를 사용
데이터그램 (UDP)
- 비연결형 소켓
- 데이터의 크기에 제한이 있음
- 확실하게 전달이 보장되지 않음, 데이터가 손실되도 오류가 발생하지 않음
- 실시간 멀티미디어 정보를 처리하기 위해 주로 사용
Socket 통신
서버와 클라이언트가 특정 port를 통해 실시간으로 양방향 통신을 하는 방식
Socekt 통신의 특징
- 서버와 클라이언트가 계속 연결을 유지하는 양방향 통신
- 서버와 클라이언트가 실시간으로 데이터를 주고받는 상황이 필요한 경우에 사용
- 실시간 동영상이나 Streaming이나 온라인 게임 등과 같은 경우에 자주 사용된다.
'코딩 에러 및 질문' 카테고리의 다른 글
이클립스, 인텔리제이 디버깅 단축키 (0) | 2023.01.14 |
---|---|
이클립스 새 창 위치 해결 (0) | 2023.01.08 |
소스코드 에러 해결 (0) | 2022.11.12 |
터미널 에러 (0) | 2022.11.03 |
url ? (0) | 2022.10.20 |