WIZnet Developer Forum

다수의 클라이언트가 w5500 서버에 접속 소켓 생성방법

안녕하세요,

초보적 질문일 수도 있지만 몰라서 문의 드립니다.

w5500 을 서버로 운영시 다수의 클라이언트가 접속 요청을 하는 경우
일반적인 TCP 통신에서는 서버가 listen 을 위한 소켓을 생성하고 클라이언트로 부터 연결 요청 받으면 accept 과정중에 새로운 소켓이 생성되어
그것을 가지고 통신합니다만, 위즈넷 API 사용시 대응하는 방법이 어디 있는지 찾을 수 없어서 문의 드립니다.

즉, w5500 에서는 다수의 클라이언트 소켓 연결에 대응하기 위해
어떤 방법으로 해당 클라이언트에 대응하는 소켓을 생성하는지 알고 싶습니다.

예를들어 서버용 소켓 S1 이 클라이언트1 에 대응하여 오픈되고 통신중에
클라이언트2가 w5500 에 접속 요청시 어떤 방법으로 연결하고 하는지에 대해 부탁 드립니다.

가능하면 예제코드등이 있으면 더욱 좋겠습니다.
감사합니다.

안녕하세요.

우선 저희 W5500칩은 총 8개의 소켓을 보유하고 있으며, 총 8개의 클라이언트와의 연결이 가능합니다.

이 말은 즉, 1개의 TCP 서버로 동작 시 1개의 클라이언트와의 1:1 통신을 지원한다는 말입니다.

1개의 서버를 사용하여 다수의 클라이언트와의 연결을 원하신다면 소프트웨어로 TCP 통신을 구현하셔야 합니다.

저희 W5500칩은 하드웨어 스택으로 칩 내부에 통신 프로토콜이 구성되어 있으며 사용자는 칩만 사용하면 손 쉽게 TCP/UDP 통신을 할 수 있다는 장점과 소프트웨어 스택의 치명적 단점인 시스템 마비를 일으키는 DDos 공격에 대응하여 강한 장점을 가집니다.

감사합니다.

소켓 입장에서 본다면 소켓은 1:1통신입니다. 1:N이 되지않습니다.
우리가 생각하는 1:N통신은 같은 소켓을 여러개를 열어 놓는 것입니다.

TCP 이용시 무조건 1:1 연결 입니다.
이말은 하나의 Port로 하나의 Client가 접속이 가능하다는 말입니다. Port를 다르게 8개의 소켓을 Server로 열어놓으면 8개의 Client가 TCP로 연결이 가능합니다.
UDP 이용시에는 1:N 연결이 가능한데 W5500의 경우 1:8 까지 지원합니다. Port를 같게 8개의 소켓을 Server로 열어놓으면 8개의 Client가 UDP로 연결이 가능합니다.

8개의 소켓은 모두 같은 프로토콜을 사용하지 않아도 됩니다.
6개의 HTTP Server 1개의 HTTP Client 1개의 FTP 이런식으로 활용하셔도 되구요 사용자의 어플리케이션에 따라 다양하게 활용할 수 있습니다.

감사합니다. :smiley:

Copyright © 2017 WIZnet Co., Ltd. All Rights Reserved.