2012-01-18 5 views
0

my previous question의 프로그램이 클라이언트에 응답 할 때 암호화 된 메시지를 보내야합니다.
클라이언트가 연결되면 "YourMessage"와 같은 메시지가 전송됩니다. 이제 클라이언트가이 메시지를 연결하면 어떻게 든 코딩되어야하고 클라이언트의 화면에 다른 메시지가 표시되도록해야합니다. 어떻게해야합니까?클라이언트/서버 상호 작용

서버 코드 :

#include "wind.h" 

using namespace std; 

//begi 
void main() 
{ 

    long answer ; 
    WSAData wsaData; 
    WORD DLLVERSION; 
    DLLVERSION = MAKEWORD(2,1); 

    answer = WSAStartup(DLLVERSION, &wsaData); 

    SOCKADDR_IN addr; 
    int addrlen = sizeof(addr); 

SOCKET slisten; 
SOCKET sConnect; 

sConnect = socket(AF_INET,SOCK_STREAM,NULL); 

addr.sin_addr.s_addr = inet_addr("127.0.0.1"); 
addr.sin_family = AF_INET; 

addr.sin_port = htons(1234); 

slisten = socket(AF_INET,SOCK_STREAM,NULL); 

bind(slisten, (SOCKADDR*)&addr, sizeof(addr)); 
// unlimited clients 
listen(slisten, SOMAXCONN); 

//conditions 
for(;;) 



     { 
cout <<"waiting for client" <<endl; 
if (sConnect = accept(slisten,(SOCKADDR*)&addr, &addrlen)) 
     { 
      cout<<" A connection was found" <<endl; 

      answer = send(sConnect,  "YourMessage", 12 ,NULL); 
     char cMyCharacter = 'A'; 
     int iMyAsciiValue = static_cast<int>(cMyCharacter); 
     } 

} 
} 

클라이언트 코드 :

#include "clnt.h" 

using namespace std; 

void main() 
{ 
string confirm; 
char message[200]; 
    string strmessage; 

long answer; 
WSAData wsaData; 
WORD DLLVersion; 
DLLVersion = MAKEWORD(2,1); 
answer = WSAStartup(DLLVersion, &wsaData); 



SOCKADDR_IN addr; 
int addrlen = sizeof(addr); 

    SOCKET sconnect; 

    sconnect = socket(AF_INET,  SOCK_STREAM,NULL); 

    addr.sin_addr.s_addr = inet_addr("127.0.0.1"); 

    addr.sin_family = AF_INET; 

    addr.sin_port = htons(1234); 


cout <<" Do you want to connect to your server?[Y/N]" <<endl; 
cin>> confirm; 
if(confirm == "N") 
{ 
     exit(1); 
    } 
     else 
    { 
     if(confirm == "Y") 
     { 
      connect(sconnect,  (SOCKADDR*)&addr, sizeof(addr)); 
      answer = recv(sconnect, message, sizeof(message), NULL); 
      strmessage = message; 
      cout << strmessage <<endl; 
      getchar(); 
     } 

    } 

getchar(); 
} 

답변

0

그것은 그냥 않는 지금, 대신 당신은 암호화 된 문자열을 보내는 일반 텍스트 문자열을 보내는처럼 작동합니다. 만약 암호화가 바이너리 데이터 - 블롭 (blob)을 만들었다면 그것도 보내야하지만 클라이언트는 사용자에게 보여주기 전에 해독해야합니다.