<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    hello world

    隨筆 - 2, 文章 - 63, 評論 - 0, 引用 - 0
    數據加載中……

    php和c之間的消息通信

    查閱資料,發現c也有消息隊列函數,令我很興奮,找了一個c的列子,c本身消息隊列收發成功了。然后我嘗試php和c對發,因為c發送的的是c的結構體 struct,所以我尋求php生成c結構體struct的辦法,我用了pack,搜索了pack,或者php struct,出來的文章都是同一篇,完全不正確的,經過記錄c發送的數據,然后將我用php pack的數據做對比,發現數據是一模一樣的,但是,發送給c,c無法解析。還好我有點兒php擴展基礎,找到php的消息函數,一看:我失望了,php 的消息函數發送的struct是固定的,一個int和一個char[1],經過一番測試之后,能將一個數字和一個字符串發送給c了

    PHP代碼:
     1 
     2 <?php
     3 $id =  msg_get_queue ( 1 );  
     4     if (!msg_send ($id, 317, "sdsadsdsds", false, true, $msg_err))  
     5     {  
     6 
     7 echo "faile!";
     8         return "Msg not sent because $msg_err\n";  
     9 }else{
    10 echo "success!";
    11 }
    12 
    13    ?>

    C代碼:
     1 #include <stdio.h>  
     2 #include <stdlib.h>  
     3 #include <fcntl.h>  
     4 #include <string.h>  
     5 #include <unistd.h>  
     6 #include <sys/types.h>  
     7 #include <sys/ipc.h>  
     8 #include <sys/msg.h>  
     9 #define MAX_TEXT 512  
    10 #define BUFSIZE BUFSIZ  
    11   
    12 struct msg_st {  
    13     long mtype;  
    14     char mtext[1];  
    15 };  
    16   
    17 void logst(struct msg_st some_data);  
    18   
    19 int main(int argc,char **argv)  
    20 {  
    21         while(1){  
    22               
    23             int msgid1;  
    24             struct msg_st some_data1;  
    25             int msg_to_recevie = 0;  
    26             if((msgid1= msgget((key_t)1,0666|IPC_CREAT)) == -1)  
    27             {  
    28                 perror("msgget");  
    29                 exit(EXIT_FAILURE);  
    30             }         
    31             if(msgrcv(msgid1,(void *&some_data1, BUFSIZ, msg_to_recevie , 0== -1)  
    32             {  
    33                 perror("msgrcv");  
    34                 exit(EXIT_FAILURE);  
    35             }  
    36             printf("recevier mssage : %s, type= %d;\n", some_data1.mtext, some_data1.mtype);  
    37             //printf("%s, %d\n", msg_text, strlen(msg_text));  
    38               
    39             if(msgctl(msgid1,IPC_RMID,0== -1)  
    40             {  
    41                 fprintf(stderr,"msgctl(IPC_RMID) failed \n");  
    42                 exit(EXIT_FAILURE);  
    43             }  
    44             //break;  
    45             sleep(1);  
    46         }     
    47       
    48 


    參考鏈接:
    http://blog.csdn.net/leinchu/article/details/8132530
    http://blog.csdn.net/guoping16/article/details/6584024

    posted on 2015-03-12 14:46 聽風 閱讀(407) 評論(0)  編輯  收藏 所屬分類: 嵌入式

    主站蜘蛛池模板: 毛片免费全部播放无码| 国产高清视频免费在线观看| 无码日韩精品一区二区三区免费 | 亚洲无码在线播放| 国产精品免费看久久久香蕉| 国产亚洲精品资在线| 成人免费ā片在线观看| 亚洲成a人片在线观看日本| 免费国产黄网站在线观看视频| 亚洲成a人片77777老司机| 99re免费视频| 亚洲国产成人精品激情| 日本19禁啪啪无遮挡免费动图| 国产精品亚洲专区无码牛牛| 亚洲综合精品网站| 99re视频精品全部免费| 亚洲人成77777在线观看网| 国产一级淫片a免费播放口之 | 性感美女视频免费网站午夜| 亚洲AV无码国产精品永久一区| 免费人成视频在线观看不卡| 国产精品福利在线观看免费不卡| 黑人精品videos亚洲人| 曰批视频免费30分钟成人| 亚洲av中文无码字幕色不卡| 中文字幕亚洲电影| 久视频精品免费观看99| 国产亚洲情侣久久精品| 亚洲国产成人片在线观看无码| 精品香蕉在线观看免费| 黄色毛片视频免费| 亚洲精品免费视频| 日韩电影免费在线观看视频| 亚洲精品视频免费| 亚洲激情黄色小说| 亚洲日本中文字幕一区二区三区 | 亚洲色四在线视频观看| 最新69国产成人精品免费视频动漫| 一级人做人爰a全过程免费视频| 日韩亚洲AV无码一区二区不卡 | 国产香蕉九九久久精品免费|