소개
게시글
질문&답변
Receive 버퍼에 대한 질문
추가로 위와는 다른 질문이지만 진행하던 프로젝트를 실행하면 더미 클라이언트가 총 5번의 메세지를 보내고 그걸 서버가 받아서 출력하는데 [From Client] Hello World! 0 Transferred bytes: 26 [From Client] Hello World! 1Hello World! 2Hello World! 3Hello World! 4 [From Client] Hello World! 0Hello World! 1Hello World! 2Hello World! 3Hello World! 4 Transferred bytes: 26 위와 같이 처음엔 클라이언트가 5번 보내기도 전에 서버가 Receive해서 HelloWorld 0만 출력되고 다음 Receive때 전에 못 받았던 1,2,3,4 데이터를 받아오는데 대체 해당 데이터는 어디에 저장되어 있다가 가져오는건가요?
- 1
- 3
- 341
질문&답변
굳이 비동기 방식을 사용하는 이유
아하, 그럼 _listenSocket.AcceptAsync(args)가 호출된 뒤 부터 연결에 성공할 시 args의 이벤트가 작동하여 동작하는데 근데 만약 _listenSocket.AcceptAsync(args)가 호출된 순간에 양 끝단의 컴퓨터가 연결이 된다면 이벤트가 정상적으로 동작하지 않아 저희가 직접 호출해주는거죠?
- 2
- 3
- 588
질문&답변
Context Switching 질문
2번 질문의 답변에서 "'동시에' 구동 가능한 쓰레드는 코어(alu) 개수와 동일합니다."라는 뜻은 서로 다른 코어에서 한 전역변수를 동시에 Store할 가능성도 있다는거 아닌가요?동일 코어의 서로 다른 쓰레드는 애초에 서로 근접하게 접근할 수는 있어도 완벽하게 동시에 접근은 불가능한데 서로 다른 코어에서 동작하는 쓰레드 끼리는 완전 같은 시간상에 접근할 가능성이 있지 않나요?그럼 Interlock 계열의 메서드를 사용하더라도 다른 코어의 쓰레드가 동시에 Interlock에 접근하면 Interlock의 의미가 없어지는것 처럼 느껴지네요.
- 0
- 3
- 330
질문&답변
chmod o+w /tmp/@
정성스런 답변 감사드립니다! 카페 꼭 참고하겠습니다 ^^
- 0
- 2
- 268
질문&답변
반환값이 무시되었습니다
네, 값은 정상적으로 잘 들어가는데 출력에서 문제가 생기네요 , ## 코드 ## #define _CRT_SECURE_NO_WARNINGS #include #define MAX 10000 int main_file(void) { // 파일 입출력 // 파일에 어떤 데이터를 저장. // 파일에 저장된 데이터를 불러오기 // fputs, fgets 쌍 -> 문자열 저장 char line[MAX]; // char line[10000] // 파일에 쓰기 /*FILE* file = fopen("G:\\test.txt", "wb"); if (file == NULL) { printf("파일 열기 실패\n"); return 1; } fputs("fputs 를 이용해서 글을 적어볼게요\n", file); fputs("잘 적히는지 확인해주세요\n", file);*/ // 파일 읽기 /*FILE* file = fopen("G:\\test.txt", "rb"); if (file == NULL) { printf("파일 열기 실패\n"); return 1; } while (fgets(line, MAX, file) != NULL) { printf("%s", line); }*/ // 파일을 열고 나서 닫지 않은 상태에서 어떤 프로그램에 문제가 생기면? // 데이터 손실 발생 가능 ! 그래서 항상 파일은 닫아주는 습관을 들여주세요 //fclose(file); // fprintf, fscanf 쌍 // printf("%d %d %s ...") // scanf("%d %d, &num1, ...) int num[6] = { 0,0,0,0,0,0 }; // 추첨번호 int bonus = 0; // 보너스 번호 char str1[MAX]; char str2[MAX]; // 파일에 쓰기 /*FILE* file = fopen("G:\\test2.txt", "wb"); if (file == NULL) { printf("파일 열기 실패\n"); return 1; } fprintf(file, "%s %d %d %d %d %d %d\n", "추첨번호", 1, 2, 3, 4, 5, 6); fprintf(file, "%s %d\n", "보너스번호", 7);*/ // 파일 읽기 FILE* file = fopen("G:\\test2.txt", "rb"); if (file == NULL) { printf("파일 열기 실패\n"); return 1; } fscanf(file, "%s %d %d %d %d %d %d", str1, &num[0], &num[1], &num[2], &num[3], &num[4], &num[5]); printf(file, "%s %d %d %d %d %d %d\n", str1, num[0], num[1], num[2], num[3], num[4], num[5]); fscanf(file, "%s %d", str2, &bonus); printf(file, "%s %d\n", str2, bonus); fclose(file); return 0; }
- 0
- 3
- 675