|
예를 들어 서버 A에 5555번 포트를 열었다고 생각해 보죠.
그래서 클라이언트 B, C가 각각 동일한 포트 5555번으로 접속해서
데이터를 송수신 한다고 할때
겉보기에는 같은 포트에 접속해서 데이터를 보내는것 같지만 아닙니다.
5555번 포트라는것은 클라이언트가 접속할때만 사용하는 포트고
접속이 완료되면 서버에서는 새로운 통신 포트를 할당해서
클라이언트와 통신할 수 있도록 합니다.
그러니까 B,C는 5555번으로 같이 Connect는 했지만
통신할때는 서로 다른 포트로 통신하기 때문에 동시에 처리가 가능한겁니다.
Accept 처리가 끝난 서버는 다시 5555번 포트에서 클라이언트를 기다리죠..
조금 이해가 되셨는지... ^^;
이영우 님이 쓰신 글 :
: 죄송합니다.
: 워낙 기초상식부족이라서리..
: 7 layer는 공부했는데 확실히 이해가 안되서요.
:
: 가령, 제 pc에서
: 3개의 telnet terminal을 한 서버에 접속하면
: (한 사이트에 3개 창을 열어놓은 익스플로러도 마찬가지구요)
: 3가지의 각 송수신 패킷들이 각 telnet 프로그램에 전달이
: 되는 이치가 어디에 있는지 알고 싶습니다.
:
:
: 이게 ip가 하는 일인가요?
:
: 꼴(이성렬) 님이 쓰신 글 :
: : " connect없이 A의 통일포트로 " 말이 무슨 의미인지...
: : 연결안하고 전송하면 에러뜨는것이 당연하지 않은가요?
: :
: :
: : 이영우 님이 쓰신 글 :
: : : 서버A와 클라이언트 B,C가 socket 송수신하게 하려는데..
: : : B는 A에 connect를 하여 packet을 계속 송수신하는데,(처리잘됨)
: : : 간헐적으로 발생하는 C의 패킷을 connect없이 A의 통일포트로
: : : 전송하면 에러가 나더군요.
: : :
: : : 서버쪽 함수인 bind 등의 문제인거 같은데요.
: : : ip 프로토콜의 문제인지..
: : : 워낙 기초가 부족해서 이유를 정확히 알수가 없습니다.
: : :
: : : 그리고, 이에 대한 해결방법은 없는지 알고 싶습니다.
|