atoi랑 _itoa는 일단 문자열로 전송하고 나서 처리하는거잖음 내 말은 클라이언트랑 서버랑 서로 send() recv() 쓸 때 정수형 변수 자체를 전송하는 방법이 있냐는거임 ㅇㅇ - dc App
익명(175.223)2020-10-31 05:21
답글
? 변수와 데이터를 굳이 구분한느 이유는요? 데이터가아니라 변수를 보내고 싶으신듯?
익명(211.251)2020-10-31 05:22
답글
님이 말하는것을 구현하면 remote shared memory 기술 될듯..
익명(211.251)2020-10-31 05:23
답글
딱히 해야할 이유가 있는건 아니고 외주받은 과제들 중에 저런 요구사항이 있는게 있어서 계속 고민하다가 결국 저부분 해결 못하고 보내줬음... 따지자면 변수를 보내는게 맞겠네요 - dc App
익명(58.141)2020-10-31 05:25
답글
변수를 보낸 다는것은 변수가 가진 속성(메타데이터)을 보내는 거와 같음
변수가 가진데이터, 변수 종류, 생성시기 등등...
님이 말하는 개념이 더 유용하려면 원격에서 변수를 공유해야함
익명(211.251)2020-10-31 05:27
답글
와 그렇네... 저랑 깊이가 다르시네요 변수랑 데이터의 명확한 구분을 할 생각을 못했네.. 학부생따리 감동받았습니다.. 데이터 전송이 맞습니다 - dc App
익명(58.141)2020-10-31 05:32
씨발 좀 소스를 올리던가 상황설명 좆같이하네
파이썬4주완성(adhdps)2020-10-31 05:23
답글
나도 보여주면 편하고 좋은데 다른학교 시험문제라 좀 그렇다 미안 ㅇㅇ; - dc App
익명(58.141)2020-10-31 05:26
답글
아 시험문제구나
파이썬4주완성(adhdps)2020-10-31 05:27
변수 보내는거 가능함. int32_t buf = 1234; 이런 값이 들어 있을 때, send (fd, (char *) &buf, sizeof(int32_t), flags); 이렇게 보내면 될 거 같음. - dc App
루비(39.7)2020-10-31 06:35
char buf[4]; recv(fd, buf, sizeof(int32_t), flags); 이렇게 받아도 되고, malloc 로 할당해서 받아도 되고, int32_t buf; 이걸로 받아도 됨. (char *) &buf; 이렇게 말이지. - dc App
루비(39.7)2020-10-31 06:39
답글
int32_t 로 받았으면 별도로 형변환 안 해도 되고, char 로 받았으면 간단히 int32_t var = *(int32_t *) buf; 이렇게 캐스팅하면 발신할 때 보낸 변수 값 나옴. buf 가 포인터가 아니면 int32_t var = *(int32_t *) &buf 이렇게 해줘야 될 거임. - dc App
루비(39.7)2020-10-31 06:42
답글
멤버에 포인터가 없으면 struct 도 통째로 보낼 수 있음. 포인터 있는 경우는 실제 값을 보내고(위 send 참고) 그걸 받은 쪽에서 malloc 로 struct * 메모리 할당해주고 실제 값(받은 데이터)을 복사하거나 포인터만 가리키게 하는 방법 있음. c 에서는 별도의 serialize, deserialize 함수가 필요하지 않음. - dc App
루비(39.7)2020-10-31 06:46
위의 예는 유닉스 소켓의 경우 부작용 없고 이기종간의 통신이면 빅엔디안, 리틀 엔디안 고려해야 됨. - dc App
문자열로 보내고 atoi 쓰세요 atoi <-> sprintf
atoi랑 _itoa는 일단 문자열로 전송하고 나서 처리하는거잖음 내 말은 클라이언트랑 서버랑 서로 send() recv() 쓸 때 정수형 변수 자체를 전송하는 방법이 있냐는거임 ㅇㅇ - dc App
? 변수와 데이터를 굳이 구분한느 이유는요? 데이터가아니라 변수를 보내고 싶으신듯?
님이 말하는것을 구현하면 remote shared memory 기술 될듯..
딱히 해야할 이유가 있는건 아니고 외주받은 과제들 중에 저런 요구사항이 있는게 있어서 계속 고민하다가 결국 저부분 해결 못하고 보내줬음... 따지자면 변수를 보내는게 맞겠네요 - dc App
변수를 보낸 다는것은 변수가 가진 속성(메타데이터)을 보내는 거와 같음 변수가 가진데이터, 변수 종류, 생성시기 등등... 님이 말하는 개념이 더 유용하려면 원격에서 변수를 공유해야함
와 그렇네... 저랑 깊이가 다르시네요 변수랑 데이터의 명확한 구분을 할 생각을 못했네.. 학부생따리 감동받았습니다.. 데이터 전송이 맞습니다 - dc App
씨발 좀 소스를 올리던가 상황설명 좆같이하네
나도 보여주면 편하고 좋은데 다른학교 시험문제라 좀 그렇다 미안 ㅇㅇ; - dc App
아 시험문제구나
변수 보내는거 가능함. int32_t buf = 1234; 이런 값이 들어 있을 때, send (fd, (char *) &buf, sizeof(int32_t), flags); 이렇게 보내면 될 거 같음. - dc App
char buf[4]; recv(fd, buf, sizeof(int32_t), flags); 이렇게 받아도 되고, malloc 로 할당해서 받아도 되고, int32_t buf; 이걸로 받아도 됨. (char *) &buf; 이렇게 말이지. - dc App
int32_t 로 받았으면 별도로 형변환 안 해도 되고, char 로 받았으면 간단히 int32_t var = *(int32_t *) buf; 이렇게 캐스팅하면 발신할 때 보낸 변수 값 나옴. buf 가 포인터가 아니면 int32_t var = *(int32_t *) &buf 이렇게 해줘야 될 거임. - dc App
멤버에 포인터가 없으면 struct 도 통째로 보낼 수 있음. 포인터 있는 경우는 실제 값을 보내고(위 send 참고) 그걸 받은 쪽에서 malloc 로 struct * 메모리 할당해주고 실제 값(받은 데이터)을 복사하거나 포인터만 가리키게 하는 방법 있음. c 에서는 별도의 serialize, deserialize 함수가 필요하지 않음. - dc App
위의 예는 유닉스 소켓의 경우 부작용 없고 이기종간의 통신이면 빅엔디안, 리틀 엔디안 고려해야 됨. - dc App
그냥 인트 변수 주소 넘기면 되잖아 멍충아