본문 바로가기

분류 전체보기213

에코 Server/Client #2 #include #include #include #include #include #include #define BUF_SIZE 30void error_handling(char *message);int main(int argc, char *argv[]){ int serv_sock; char message[BUF_SIZE]; int str_len; socklen_t clnt_adr_sz; struct sockaddr_in serv_adr, clnt_adr; if(argc!=2){ printf("Usage : %s \n", argv[0]); exit(1); } serv_sock=socket(PF_INET, SOCK_DGRAM, 0); if(serv_sock==-1) error_handling("UDP.. 2025. 9. 21.
에코 Server/Client 기초 import socketimport sys# 실행 파일명 뒤에 포트 번호가 인수로 전달되는지 확인if len(sys.argv) != 2: print("사용법: python script.py ")else: PORT = sys.argv[1] try: PORT = int(port) print(f"서버가 포트 {port}에서 실행됩니다.") except ValueError: print("포트 번호는 숫자여야 합니다.")# 서버 주소와 포트HOST = "0.0.0.0" # 모든 IP에서 수신# 소켓 생성 (IPv4, UDP)sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)sock.bind((HOST, .. 2025. 9. 21.
메모리 누수 간단 검사 방법 #if defined(_DEBUG)#define _CRTDBG_MAP_ALLOC // 디버그 할당을 사용하겠다는 선언#define new new(_NORMAL_BLOCK, __FILE__, __LINE__) // 덤프를 좀 더 쉽게 보기 위한 것#endif// Memory block identification// #define _FREE_BLOCK 0// #define _NORMAL_BLOCK 1// #define _CRT_BLOCK 2// #define _IGNORE_BLOCK 3// #define _CLIENT_BLOCK 4// #define _MAX_BLOCKS 5// 다른 건 별로 의미 없고 _NORMAL_BLOCK과 _CLIENT_BLOCK만 알면됨#.. 2025. 9. 4.
인텔 CPU 주요 명칭 인텔 CPU의 주요 제품을 년도별로 정리하면 다음과 같습니다.📌 년도별 인텔 CPU 명칭 (주요 라인업)🔹 데스크탑 & 모바일 CPU 중심🔹 서버 & 워크스테이션(Xeon) 제외출시 연도 주요 인텔 CPU (코드네임 포함)1993Pentium (P5)1995Pentium Pro1997Pentium II (Klamath, Deschutes)1999Pentium III (Katmai, Coppermine)2000Pentium 4 (Willamette)2002Pentium 4 (Northwood)2004Pentium 4 (Prescott)2006Core 2 Duo (Conroe, Merom)2008Core i7 1세대 (Nehalem)2010Core i7/i5/i3 2세대 (Sandy Bridge)201.. 2025. 3. 11.
C/C++ dll 파이썬에서 호출 하기-#2 문자열 전달 하기 #include __declspec(dllexport) void print_message(const char* message) { printf("Received message: %s\n", message);}  import ctypes# DLL 로드mydll = ctypes.WinDLL(r"C:\경로\mydll.dll")# 함수 원형 지정mydll.print_message.argtypes = [ctypes.c_char_p]mydll.print_message.restype = None # 반환값 없음# 문자열 전달msg = b"Hello from Python!" # 반드시 b'' 형태로 바이트 문자열 사용mydll.print_message(msg)  #include #includ.. 2025. 2. 28.
C/C++ dll 파이썬에서 호출 하기 1. C dll을 잘 만들어야 한다.1.1 64비트형으로 만들기 1.2 visual C++에서 만들었다.1.3 표준 라이브러리 형으로 잘만든다2. 릴리즈 모드로 만든다 #include extern "C" __declspec(dllexport) int add(int a, int b) { return a + b;}extern "C" __declspec(dllexport) void say_hello() { std::cout  파이썬에서 호출하기3. 상대경로 안됨 무조건 절대경로 사용(같은 폴더에 있어도)import ctypes# DLL 로드mydll = ctypes.WinDLL(r"C:\Users\YourName\source\repos\MyDll\x64\Release\MyDll.dll")# 함수 정.. 2025. 2. 27.
가끔 사용하는 코딩 #1 int *arr = new int [4*5];int (*ptr)[5] = (int(*)[5])arr;int (*ptr)[4][5]  =  (int(*)[4][5])arr; 2024. 10. 10.
XML 파일 만들기-#1 import xml.dom.minidom as minidom import xml.etree.ElementTree as ET # XML 생성 예시 root = ET.Element("root") child1 = ET.SubElement(root, "child1") child1.text = "value1" child2 = ET.SubElement(root, "child2") child2.text = "value2" tree = ET.ElementTree(root) # 문자열로 변환한 후 들여쓰기 적용 xml_str = ET.tostring(root, encoding='utf-8', method='xml') pretty_xml = minidom.parseString(xml_str).toprettyxml(inde.. 2024. 10. 2.
요즘 핫하다는 안드로이드 세팅 RG556 VS Y700 #4 이제 부터는 본인 개인적인 세팅이 가미된 내용이다.다르게 한다면 다르게 할 수도 있는 부분이다.나의 Y700에서 사용하던 SD를 최소한의 수정으로 RG556에 사용 하는게 목적이다.물론 아무런 설정 수정 없이 양쪽으로 호환 되게 만들면 좋겠지만, 아직은 좀 어렵다고 본다.1. ES-DE는 SD카드에 설치 했다.1. 1 ES-DE 설치후 지정하라는 폴더 ES-DE라는 이름을 사용 했다.1.2 롬 지정이라는 폴더명은 ROM, ROMS 각각 설정해 봤다. 1.2.1 AetherSX2에서 경로문제로 실행이 안되는 문제가 있어서 해봤는데, 딱 잘 되지는 않았다.​2. 레트로아크는 내부메모리(디스크)에 설치 했다.2.1 레트로아크를 SD에 설치 할 수 있는지는 모르겠지만,​3. ES-DE의 downloaded_me.. 2024. 9. 29.