전자공학/MCU

[EPS32] TCP 기초1

17Hyuk 2022. 8. 11. 13:55

저번에 기초를 하긴 했는데 솔직히 내가 생각해도 코드설명이 부실한 것 같아서 다시 썼다.

 

파이썬

import socket

 # TCP
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('192.168.223.41', 9008)) # ip주소, 포트번호 지정
server_socket.listen(0)     # 클라이언트의 연결요청을 기다리는 상태    
client_socket, addr = server_socket.accept() # 연결 요청을 수락함. 길이가 2인 튜플 데이터를 가져옴

server_socket.close()

 

이건 단순히 192.168.233.41:9008 이라는 서버를 열고 연결을 수락하는 코드이다.

 

EPS32

#include <WiFi.h>

const char* ssid = "iptime123"; // Your WiFi SSID
const char* password = "1234567!"; // Your WiFi Password
const char* host = "192.168.223.41";  // ipconfig 이용해서 IPv4 주소 입력
const uint16_t port = 9008;

void setup() {
    Serial.begin(9600);
    /*WIFI 접속관련*/
    WiFi.mode(WIFI_STA);    // WIFI_STA : 다른공유기에서 ip주소를 받는다는 의미
    WiFi.begin(ssid, password);
    while(WiFi.waitForConnectResult() != WL_CONNECTED){}    // 연결될때까지 대기
    Serial.println("WiFi Connected!");
}

void loop()
{

  WiFiClient client;    // WiFiClient 를 clinet라고 정의
  while(!client.connect(host,port)){}   // 접속될때까지 무한루프
  Serial.println("TCP Connected");
  client.stop();

  delay(1000);
  
}

 

우선 begin에 있는 코드는 wifi를 접속하는 코드이다.

그리고 loop에 있는 코드는 단순히 아까전 192.168.233.41:9008에 접속을 성공하면 TCP Connected 라는 메시지를

시리얼 프린터에 출력을 하고 종료하는 코드이다.