新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式Linux網絡編程之:網絡基礎編程

        嵌入式Linux網絡編程之:網絡基礎編程

        作者: 時間:2013-09-13 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/257116.htm

        客戶端的代碼如下所示:

        /*client.c*/

        #includestdio.h>

        #includestdlib.h>

        #includeerrno.h>

        #includestring.h>

        #includenetdb.h>

        #includesys/types.h>

        #includenetinet/in.h>

        #includesys/socket.h>

        #definePORT4321

        #defineBUFFER_SIZE1024

        intmain(intargc,char*argv[])

        {

        intsockfd,sendbytes;

        charbuf[BUFFER_SIZE];

        structhostent*host;

        structsockaddr_inserv_addr;

        if(argc3)

        {

        fprintf(stderr,USAGE:./clientHostname(oripaddress)Textn);

        exit(1);

        }

        /*地址解析函數*/

        if((host=gethostbyname(argv[1]))==NULL)

        {

        perror(gethostbyname);

        exit(1);

        }

        memset(buf,0,sizeof(buf));

        sprintf(buf,%s,argv[2]);

        /*創建socket*/

        if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)

        {

        perror(socket);

        exit(1);

        }

        /*設置sockaddr_in結構體中相關參數*/

        serv_addr.sin_family=AF_INET;

        serv_addr.sin_port=htons(PORT);

        serv_addr.sin_addr=*((structin_addr*)host->h_addr);

        bzero((serv_addr.sin_zero),8);

        /*調用connect函數主動發起對服務器端的連接*/

        if(connect(sockfd,(structsockaddr*)serv_addr,

        sizeof(structsockaddr))==-1)

        {

        perror(connect);

        exit(1);

        }

        /*發送消息給服務器端*/

        if((sendbytes=send(sockfd,buf,strlen(buf),0))==-1)

        {

        perror(send);

        exit(1);

        }

        close(sockfd);

        exit(0);

        }

        在運行時需要先啟動服務器端,再啟動客戶端。這里可以把服務器端下載到開發板上,客戶端在宿主機上運行,然后配置雙方的IP地址,在確保雙方可以通信(如使用ping命令驗證)的情況下運行該程序即可。

        $./server

        Socketid=3

        Bindsuccess!

        Listening....

        Receivedamessage:Hello,Server!

        $./clientlocalhost(或者輸入IP地址)Hello,Server!

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        linux相關文章:linux教程



        上一頁 1 2 3 4 5 6 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 双牌县| 尤溪县| 山丹县| 古浪县| 商洛市| 临沭县| 咸阳市| 扬中市| 司法| 炉霍县| 鲜城| 双城市| 弥勒县| 南投县| 桐城市| 黔东| 晋州市| 桓台县| 阳信县| 烟台市| 溧阳市| 东阿县| 阜新市| 肥东县| 舞阳县| 宜兴市| 乳源| 绵阳市| 阳谷县| 泊头市| 灵寿县| 武隆县| 邯郸县| 彭州市| 依兰县| 资阳市| 中宁县| 喀喇沁旗| 平乐县| 阿尔山市| 龙南县|