ACE의 UDP 통신

2075 단어
ACE의 UDP 통신은 잔소리 없이 코드에 직접 연결됩니다.
 
서버 코드:
#include <ace/SOCK_Dgram.h>
#include <ace/INET_Addr.h>
#include <ace/Time_Value.h> 

#include <string>
#include <iostream>
using namespace std;

int main(int argc, char *argv[]) 
{
    ACE_INET_Addr port_to_listen(3000);    //     
    ACE_SOCK_Dgram peer(port_to_listen);    //    

    char buf[100];
    while(true)
    {
        ACE_INET_Addr remoteAddr;    //        
        int bc = peer.recv(buf,100,remoteAddr);    //    ,        
        if( bc != -1)
        {
            string s(buf,bc);
            cout<<endl<<"recv:\t"<<s<<endl;
        }
		strcpy(buf, "hello, Client.");
        peer.send(buf,strlen(buf), remoteAddr);    //       
    }

    return 0; 
} 


클라이언트 코드:
#include <ace/SOCK_Dgram.h>
#include <ace/INET_Addr.h>
#include <ace/Time_Value.h> 

#include <string>
#include <iostream>
using namespace std;

int main(int argc, char *argv[]) 
{
    ACE_INET_Addr remoteAddr(3000,"127.0.0.1");    //        
    ACE_INET_Addr localAddr;    //      

    ACE_SOCK_Dgram peer(localAddr);    //    

	char buf[100];
	
	strcpy(buf, "hello, Server.");
    peer.send(buf,strlen(buf),remoteAddr);    //    

    int bc = peer.recv(buf,100,remoteAddr);    //    
    if( bc != -1)
    {
        string s(buf,bc);
        cout<<endl<<"recv:\t"<<s<<endl;
    }

	getchar();

    return 0; 
} 


컴파일 실행, 실행 결과는 다음과 같습니다.
서버:
recv:   hello, Server.
클라이언트:
recv:   hello, Client.
참조:
http://www.cnblogs.com/TianFang/archive/2006/12/07/585205.html

좋은 웹페이지 즐겨찾기