안녕하세요 Security Access / Send Key 확인 중인데 메세지 Type이 SF임에도 불구하고 총 [00 0A]+ 나머지 바이트 -> 12byte를 보내는 부분을 확인하였습니다. CANoe에서 이렇게 보내는 설정이 가능하다면, ISO-TP에 따라 request를 보내는 시퀀스가 어떻게 될까요?
Release는 이전 코드들이 뒷 줄로 코드 재배치되는 것을, Acquire은 뒷 줄 코드들이 이전으로 재배치되는 것을 막아준다고 배웠습니다. #include <atomic> #include <iostream> atomic<bool> ready; int value; void Producer() { value = 10; ready.store(true, memory_order::memory_order_release); value = 7; // ready.store() 위로 코드 재배치 가능 or 불가능 } void Consumer() { value = 0; // ready.load() 아래로 코드 재배치 가능 or 불가능 while (ready.load(memory_order::memory_order_acquire) == false) ; cout << value << endl; } int main() { // 스레드 실행 코드... 생략 } 이런 value = 7과 value = 0 코드의 경우에는 코드 재배치가 일어날 위험이 있는 건가요?
안녕하세요, 좋은 강의 만들어주신 덕분에 오랜만에 몰입해서 프로젝트를 진행해보고 있습니다! 그런데 제가 지식이 부족하여 계속 모르는 부분들이 생기네요 ㅠㅠ 다름이 아니라, UDP DNS Response 패킷을 위조하여 먼저 보내는 방식으로 지금 방향을 바꾸었는데, 모든 조건이 동일하고 길이마저 동일하게 변조하여 보내서 wireshark에서는 정상 패킷으로 인식하여 먼저 온 응답으로 인식하는데 브라우저와 윈도우의 nslookup에 의한 명령어로 dns 를 조회할 때는 정상적인 응답만 받아들이고 제 위조 패킷은 먼저 왔음에도 받아들여주지 않습니다 ㅠㅠ 길이도 똑같이 맞추고, 다른 건 ipv4헤더의 identification값이 달라 ip와 udp 체크섬이 달라진다는 것 뿐인데.. 혹시 관련하여 어느 부분을 더 찾아봐야 할까요 검색을 해도 너무 나오는 부분이 없어 막막하여 질문드립니다..
[root@myeks-host ~]# aws ec2 describe-instances | jq An error occurred (UnauthorizedOperation) when calling the DescribeInstances operation: You are not authorized to perform this operation. User: arn:aws:iam::694833324522: user/dntjr4772@lgcns.com is not authorized to perform: ec2:DescribeInstances with an explicit deny in an identity-based policy aws configure 에서 accesskeys.csv 파일에 맞게 등록은 잘했습니다. iam 사용자 권한을 봐도 AdministratorAccess 권한 정책이 들어가있습니다. 어떤게 문제일까요?
안녕하세요 강의 내용에서 time_wait 상태로 인해서 서버에서 tcp 연결을 끊는 것 보다 클라이언트에서 끊는게 더 효율적이라고 하셨는데 해당 부분에 대한 구체적인 예시를 알면 더 좋을 것 같아 질문을 드립니다. 저는 위 말씀을 듣고 tcp 서버에서 먼저 연결을 끊어 서버 소켓 포트에 대해 소켓이 time_wait 상태로 존재하도록 하고 다시 클라이언트가 연결을 하도록 했는데요, 문제 없이 연결이 되었습니다. ss 명령어를 통해서 확인해 봐도, 해당 포트에 대해 LISTEN 상태와 TIME_WAIT 상태가 둘 다 존재하는 상태였고, 해당 time_wait이 분명 존재하는 상황에서도 클라이언트가 계속 연결을 시도하면 연결이 잘 ESTABLISHED 되었습니다. 아마 강사님께서 말씀하신 내용은 이 부분이 아니겠지만, 어떠한 부작용(?) 때문에 tcp 연결을 클라이언트에서 끊는게 더 좋고, time_wait 상태도 언제 문제가 되는 상황인지 더 설명을 들으면 좋을 것 같습니다. 좋은 강의 감사합니다!
auto_reset가 설정된 event를 SetEvent()할 때, WaitForSingleObject()로 sleep 중인 스레드들을 실행시켜주고 다시 Signal이 리셋되는 것으로 이해했습니다. 여기서 Signal을 확인하고 리셋하는 과정이 CAS같이 원자적으로 동시에 작동하나요? 아니면, 중도에 WaitForSingleObject()를 호출한 스레드 측에서 리셋이 되지 않아 통과할 가능성이 있나요?
#include "pch.h" #include "CorePch.h" #include <iostream> #include <atomic> #include <thread> #include <mutex> #include <Windows.h> #include <future> int32 buffer[10'000][10'000]; int main() { memset(buffer, 0, sizeof(buffer)); // 배열을 전부 0값으로 초기화 //! [i][j] 순으로 더하기 { uint64 start = GetTickCount64(); //~ 시작 시간 측정 int64 sum = 0; for (int32 i = 0; i < 10'000; i++) for (int32 j = 0; j < 10'000; j++) sum += buffer[i][j]; uint64 end = GetTickCount64(); // ~ 종료 시간 측정 cout << "Elapsed Time [i][j] : " << (end - start) << endl; } //! [j][i] 순으로 더하기 { uint64 start = GetTickCount64(); //~ 시작 시간 측정 int64 sum = 0; for (int32 i = 0; i < 10'000; i++) for (int32 j = 0; j < 10'000; j++) sum += buffer[j][i]; uint64 end = GetTickCount64(); // ~ 종료 시간 측정 cout << "Elapsed Time [j][i] : " << (end - start) << endl; } } 해당 코드를 7900 CPU 에서 테스트하는데, 경과시간이 둘 다 0,0 이 나오더군요.. 분명 그럴수가 없는데, CPU클럭이 너무 빨라서 gettick64() 의 정밀도로 측정이 불가능해서그런건가요? 분명 두번째 스코프에 있는 경과시간이 더 느리게 나와야 정상인데, 둘 다 틱이 0 0 이 나와서 당황스럽습니다
make shared로 shared_ptr를 만들게 되면 우리가 예제에서 만든 것처럼 우리가 포인터로 가르키는 객체가 RefCountingBlock을 상속해서 메모리에 할당 될 때 같이 된다는 이점있다고 이해했습니다 Ref count_obj2(_Type&&... Args) : Ref_count_base 를 예시를 드시며 21:11 에서 설명 해주셨습니다 만약 uses가 0이 되고 weak는 아직 1일 때 객체 부분은 구현에 따라 삭제 될 수도 있고 RefCountingBlock은 남아있게 된다고 말씀해주셨는데 RefCountingBlock을 상속해서 하나의 객체로 만들어진 상태에서 객체의 부모(countringBlock)을 남긴채로 자식(객체부분)만 메모리 해제를 할 수 있는건가요? 아니면 이게 불가능 하기 때문에 그냥 구현에 따라 다른건가요?
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
안녕하세요 유니코드 특수문자를 출력시킬 때 일부 특수문자( Ballot Box with X )가 ?로 출력이 되고 있습니다 레지스트리 편집기에서 chcp를 새로 설정해주기도 하고 인코딩을 새롭게 해서(유니코드 65001) 저장도 하고 문자 그림 대신 유니코드 번호를 적어도 봤지만('\u2612') 여전히 해결되지 않고 있습니다 다른 해결방법이 있을까요?