2010-12-01 3 views
0

나는이 I가 서버에서 "옵션"보내 어떻게* 변수는 argv [] 리눅스 소켓 프로그래밍에서 클라이언트 서버에서

char *options[n] ; // n = 2 just for example . 

options[0] = "How to"; 

options[1] = "Send"; 

같은 숯불 * 배열 클라이언트, send와 같은 하나의 함수 호출 만 사용합니다. 보내기의 프로토 타입은이 int send(int sockfd, const void *msg, int len, int flags);receive is int recv(int sockfd, void *buf, int len, int flags);과 같기 때문에 하나의 함수 호출로 보내기와 받기를 수행 할 수있는 "옵션"을 캐스팅하는 방법을 모르겠습니다.

답변

2

실제 문자열을 보내야합니다. 포인터는 컴퓨터의 메모리 주소이며 프로그램 내에서만 액세스 가능/의미가 있습니다.

클라이언트와 서버가 같은 컴퓨터에 있더라도 OS는 클라이언트 프로그램 메모리에 액세스하려는 모든 시도를 차단합니다.

0

포인터를 보내면 데이터가 전송되지 않습니다. 이런 식으로 문자열을 전송하려면 데이터를 전송하는 프로토콜을 제시하거나 발신자와 수신자가 동일한 프로세스 (또는 적어도 동일한 지점에서 동일한 메모리를 공유 함)를 보장해야합니다. .

관련 문제