🧼C, C++/네트워크21

c/c++ 메일 전송(smtp프로토콜) | 이론과 실습 🎄 개요 안녕하세요! 오랜만에 c++ 네트워크글이 돌아왔습니다... 이번에는 저가 엄청나게 유익한 내용을 들고왔는데요.. 흔히 여러분들중에서 키로거사용경험이 있으신분들은 smtp를 이용한 메일전송을 많이보셨을겁니다. 이번 포스팅에서는 c++환경에서 아무 상용라이브러리의 도움없이 smtp프로토콜을 이용하여, 메일을 전송하는 방법에 관하여 토론하는 시간을 가져보도록 하겠습니다. 🎄 목차 - SMTP 프로토콜이란? - SMTP 프로토콜의 내부구조 - 구글의 SMTP 서버 이용하기 - C++20을 이용한 메일전송 프로그램 만들기 (Unauthorized id[:비검증된 계정]) - 나만의 SMTP 서버 만들기 - C++20을 이용한 메일전송 프로그램 만들기 (Authorized id[:검증된 계정]) - 마치며.. 2021. 12. 25.
IOCP 에코 서버-클라이언트 C++ (CompletionQueue) 오랜만에 네트워크관련글을 쓰게되었습니다. 사실 반년전에는 네트워크관련글을 열심히올리다가, 대부분 알고리즘&게임엔진에 대한 글을 많이쓰게되었습니다. 그리고, 현재.. TCP/IP IOCP 에코서버&클라이언트에 대한 글을 쓰게되네요. ✨ 다운로드 https://github.com/orangelie/IOCP-Echo GitHub - orangelie/IOCP-Echo: WSA IOCP Tcp/ip Echo Server on C++17 WSA IOCP Tcp/ip Echo Server on C++17. Contribute to orangelie/IOCP-Echo development by creating an account on GitHub. github.com 🔮 클라이언트를 특정할 수 있습니다. /** @s.. 2021. 9. 8.
소켓 파일전송 프로그램 C++ #4 개발환경 >> Visual Studio 언어 >> C++20 운영체제 >> Windows10 안녕하세요 어제 파일전송 #3을 만들고 할거없어서 그냥 바로 또 #4 만들었습니다 ㅋㅋ #4는 어떤기능을 추가했냐면, 파일을 이제 다중으로 동시에 여러파일을 받아올 수 있게 설계했습니다. 그럼 시작하겠습니다! ( 하단에 다운로드링크로 배포중인 배포파일내에 소스파일과 블로그에서 소스파일은 일부 다릅니다. 이유는 블로그 포스팅하면서 좀 수정함 ㅋㅋ. 그래서 다시 압축하고 재배포하기 귀찮아서 ㅋㅋ ) {[ 추천강좌 ]} mawile.tistory.com/100 다중 스트림서버 C++ TCP #1 개발환경 >> Visual Studio 언어 >> C++17 운영체제 >> Windows10 안녕하세요... 오랜만입니다.... 2021. 1. 21.
소켓 파일전송 C++ #3 개발환경 >> Visual Studio 언어 >> C++20 운영체제 >> Windows10 안녕하세요!!! 이번에는 엄청난 파일전송속도와 안정성을 가지고 왔습니다. 나중에는 이것보다 더 체계적으로 설계해서 속도와 안정성을 더 올려보겠습니다! 일단 현재 안정성은 최고치구요. 속도만 더 올리고싶네요!~~ {[ 서버 ]} /* * RECEIVER */ #define PKT 1024 //기본 데이터패킷사이즈 #define FILEMAX 100000 //파일데이터 한 단위별 패킷사이즈 #pragma comment(lib, "ws2_32.lib") //ws2_32.a 링킹 #include //윈속 #include //윈도우api #include //c++표준입출력 #include //getline함수와 strin.. 2021. 1. 20.
다중 스트림서버 C++ TCP #1 개발환경 >> Visual Studio 언어 >> C++17 운영체제 >> Windows10 안녕하세요... 오랜만입니다..! 이번에 시험이 끝나고 쓰는 정식적인 첫 강좌 글이네요. 이번에는 예전부터 쓴다고 예고했던 소켓 다중 스트림 강좌입니다. 다중 스트림이랑 다중 클라이언트와의 차이점은 밑에 그림을 그렸습니다 보시죠~~ 우선 저가 이것을 연구하고 싶게 된 계기가 통신을 하면서 데이터를 동시에 보내야 하는데 혼합되지 않도록 할 때가 필요하더라고요 예를 들어서 키로거를 포함한 해킹 툴을 만드는데 키로깅 내용과 다른 작업을 동시에 할 때 데이터가 섞이지 않는 등등.. 이렇게 있기 때문에 연구하기 시작했습니다. 금방 만들 줄 알았는데 2시간 정도 더 걸렸네요...ㅠㅠ 우선 소스코드 보시죠! [[[ 서버 ]].. 2020. 12. 31.
다중 클라이언트 C++ TCP #3 (수정본) 개발환경 >> Visual Studio 언어 >> C++17 운영체제 >> Windows10 안녕하세요 저번에 올렸던 다중클라이언트글은 devcpp 기반이라서 비주얼스튜디오를 사용하시는분들은 작동이 안될겁니다 그래서 비주얼 스튜디오에서도 작동되는 코드로 재수정했습니다. 비주얼스튜디오 이용자분들에게 도움이되길 바라요~ [[[ 지난글 ]]] 다중 클라이언트 C++ TCP #3 개발환경 >> DevCpp 언어 >> C++11 운영체제 >> Windows10 [[[ 지난 글 ]]] > DevCpp 언어 >> C++11 운영체제 >> Windows10 [[[ 지난 글 ]]] 다중 클라이언트 C++ TCP #1 시작하기 앞서서 사용한 운영체제.. mawile.tistory.com [[[ 서버 ]]] #include.. 2020. 12. 24.
소켓 파일전송 C++ #2 개발환경 >> DevCpp 언어 >> C++11 운영체제 >> Windows10 [[[ 지난글 ]]] 소켓 파일전송 C++ #1 시작하기 앞서서 사용한 운영체제는 Windows10이며 사용된 IDE는 DevCpp이고, 사용한 언어는 C++11입니다! [[[ 참고자료 ]]] 소켓 기본 틀 소켓 기본틀 [[[ 서버 기본 틀 ]]] #include #include using nam.. mawile.tistory.com 안녕하세요 심심하기도하고 복습할겸 소켓간의 파일전송하는 방법을 하나 더 만들어봤습니다 저번보다는 더 심플하게 최대한 만들려고했습니다 [[[ 서버(송신) ]]] #include //Sender #include using namespace std; void StrToChr(string str,cha.. 2020. 11. 26.
소켓 커스텀 송수신함수 구현 C++ 안녕하세요~!이번에는 소켓 송수신 함수를 좀 더 안정적으로 만들었습니다 예를 들어서클라이언트 측에서 "Hello world"라는 문구를 서버로 전송했다고 칩시다.이때의 데이터의 길이는 11, 데이터의 크기는 12가 될 겁니다. 만약 strlen() 즉, 문자열의 길이를 전송했을 경우,서버 측에서는 이것을 11만큼 받아야 합니다.아니면 sizeof() 즉, 문자열의 크기를 전송했을 경우, 서버 측에서는 이것을 12만큼 받아야 합니다. 만약 클라이언트 측에서 데이터의 양을 20을 보냈는데 서버측에서 데이터의양을 10을 받으면,소켓 버퍼에는 10만큼의 데이터가 남게 돼서 그 코드에는 오류는 발생하지 않지만, 결함이 발생하게 됩니다. 그리고 서버 측에서는 클라이언트 측에서 보내는 데이터의 크기나 길이를 모릅니다.. 2020. 11. 26.
다중 클라이언트 C++ TCP #3 개발환경 >> DevCpp 언어 >> C++11 운영체제 >> Windows10 [[[ 지난 글 ]]] 다중 클라이언트 C++ TCP #2 개발환경 >> DevCpp 언어 >> C++11 운영체제 >> Windows10 [[[ 지난 글 ]]] 다중 클라이언트 C++ TCP #1 시작하기 앞서서 사용한 운영체제는 Windows10이며 IDE는 DevCpp이고 사용한 언어는 C++11입니다! 참.. mawile.tistory.com [[[ 비주얼스튜디오 이신분들은 이곳으로!! ]]] 다중 클라이언트 C++ TCP #3 (수정본) 개발환경 >> Visual Studio 언어 >> C++17 운영체제 >> Windows10 안녕하세요 저번에 올렸던 다중클라이언트글은 devcpp 기반이라서 비주얼스튜디오를 사용하.. 2020. 11. 9.
다중 클라이언트 C++ TCP #2 개발환경 >> DevCpp 언어 >> C++11 운영체제 >> Windows10 [[[ 지난 글 ]]] 다중 클라이언트 C++ TCP #1 시작하기 앞서서 사용한 운영체제는 Windows10이며 IDE는 DevCpp이고 사용한 언어는 C++11입니다! 참고자료 소켓 기본 틀 #1 [[[ 서버 기본 틀 ]]] #include #include using namespace std; #define PACKET_.. mawile.tistory.com [[[ 참고 ]]] 소켓 기본 틀 #1 [[[ 서버 기본 틀 ]]] #include #include using namespace std; #define PACKET_SIZE 1024 SOCKET skt,client_sock; int main(){ WSADATA wsa.. 2020. 11. 5.
소켓 버퍼 비우기 C++ [[ 소켓 버퍼 비우기 ]] void voidBuffer(SOCKET s){ u_long tmpl,i; char tmpc; ioctlsocket(s,FIONREAD,&tmpl); for(i=0;i 2020. 10. 17.
소켓 구조체 정보 전송 C++ TCP 시작하기 앞서서 사용한 운영체제는 Windows10이며IDE는 DevCpp이고 사용한 언어는 C++11입니다! 안녕하세요!! 이번에는 간단명료하게 원리 설명과 소스코드 뿌리고 빠지겠습니다~!!(ㅋㅋㅋㅋ) 궁금한 부분이 있다면 모두 질문 주세요~!!!!!!!!!!!!! [[ 참고자료 ]] 소켓 기본 틀 #1 [[[ 서버 기본 틀 ]]] #include #include using namespace std; #define PACKET_SIZE 1024 SOCKET skt,client_sock; int main(){ WSADATA wsa; WSAStartup(MAKEWORD(2,2), &wsa); skt = socket(PF_INET,SOCK_S.. mawile.tistory.com 소켓 기본 틀 #2 [[[ .. 2020. 10. 16.
다중 클라이언트 C++ TCP #1 시작하기 앞서서 사용한 운영체제는 Windows10이며 IDE는 DevCpp이고 사용한 언어는 C++11입니다! 참고자료 소켓 기본 틀 #1 [[[ 서버 기본 틀 ]]] #include #include using namespace std; #define PACKET_SIZE 1024 SOCKET skt,client_sock; int main(){ WSADATA wsa; WSAStartup(MAKEWORD(2,2), &wsa); skt = socket(PF_INET,SOCK_S.. mawile.tistory.com 소켓 기본 틀 #2 [[[ 서버 ]]] #include #include using namespace std; #define PACKET_SIZE 1024 int main(){ WSADATA ws.. 2020. 10. 14.
소켓 기본 틀 #2 [[[ 서버 ]]] #include #include using namespace std; #define PACKET_SIZE 1024 int main(){ WSADATA wsa; if(WSAStartup(MAKEWORD(2,2), &wsa)!=0){ cout 2020. 10. 13.
소켓 파일전송 C++ #1 시작하기 앞서서 사용한 운영체제는 Windows10이며 사용된 IDE는 DevCpp이고, 사용한 언어는 C++11입니다! [[[ 참고자료 ]]] 소켓 기본 틀 소켓 기본틀 [[[ 서버 기본 틀 ]]] #include #include using namespace std; #define PACKET_SIZE 1024 SOCKET skt,client_sock; int main(){ WSADATA wsa; WSAStartup(MAKEWORD(2,2), &wsa); skt = socket(PF_INET,SOCK_S.. mawile.tistory.com 파일 전송 원리 [C] 파일 전송(File Transfer) - TCP 1. 구성 TCP 기반의 Socket을 이용한 파일 전송 프로그램입니다. Server Rec.. 2020. 10. 6.