⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lst

📁 这是TCP/IP协议组播的实现代码
💻 LST
📖 第 1 页 / 共 4 页
字号:
 769   1              {
 770   2                      adjust_rev_audio(connect_num,connect_state);
 771   2              }
 772   1      
 773   1              connect_state = (state >> 6) & 0x03;
 774   1              connect_num = (num >> 6) & 0x03;
 775   1              if(connect_state != 0x01)
 776   1              {
 777   2                      adjust_send_audio(connect_num,connect_state);
 778   2              }
 779   1      }
 780          
 781          void adjust_send_video(unsigned char num,unsigned char flag)
 782          //调整视频的发送
 783          {
 784   1              switch(flag)
 785   1              {
 786   2                      case 0://禁止
 787   2                      {
C51 COMPILER V7.07   MAIN                                                                  04/11/2006 11:07:35 PAGE 14  

 788   3                              printf("close send video! - %bu\r\n",send_video_flag);
 789   3                              send_video_flag = 0xff;
 790   3                      }
 791   2                      break;
 792   2                      case 2://打开
 793   2                      case 3://调整
 794   2                      {
 795   3                              if(send_video_flag != num)
 796   3                              {
 797   4                                      memset(&send_udp_video, 0, sizeof(struct sockaddr));
 798   4                                      send_udp_video.sin_addr[12] = send_para[num][0];
 799   4                              send_udp_video.sin_addr[13] = send_para[num][1];
 800   4                              send_udp_video.sin_addr[14] = send_para[num][2];
 801   4                              send_udp_video.sin_addr[15] = send_para[num][3];
 802   4                              send_udp_video.sin_port = SEND_VIDEO_PORT;
 803   4                                      syn_setDatagramAddress(video_sendhandle, 1, &send_udp_video);//设置UDP命令字发送连接地址
 804   4                                      printf("send video num is %bu\r\n", num);
 805   4                                      send_video_flag = num;
 806   4                              }
 807   3                      }
 808   2                      break;
 809   2                      default:
 810   2                      break;
 811   2              }
 812   1      }
 813          
 814          void adjust_send_audio(unsigned char num,unsigned char flag)
 815          //调整音频的发送
 816          {
 817   1              switch(flag)
 818   1              {
 819   2                      case 0://禁止
 820   2                      {
 821   3                              printf("close send audio! - %bu\r\n",send_audio_flag);
 822   3                              send_audio_flag = 0xff;
 823   3                      }
 824   2                      break;
 825   2                      case 2://打开
 826   2                      case 3://调整
 827   2                      {
 828   3                              if(send_audio_flag != num)
 829   3                              {
 830   4                                      memset(&send_udp_audio, 0, sizeof(struct sockaddr));
 831   4                                      send_udp_audio.sin_addr[12] = send_para[num][0];
 832   4                              send_udp_audio.sin_addr[13] = send_para[num][1];
 833   4                              send_udp_audio.sin_addr[14] = send_para[num][2];
 834   4                              send_udp_audio.sin_addr[15] = send_para[num][3];
 835   4                              send_udp_audio.sin_port = SEND_G711_PORT;
 836   4                                      syn_setDatagramAddress(g711_sendhandle, 1, &send_udp_audio);//设置UDP命令字发送连接地址
 837   4                                      printf("send audio num is %bu\r\n", num);
 838   4                                      send_audio_flag = num;
 839   4                              }
 840   3                      }
 841   2                      break;
 842   2                      default:
 843   2                      break;
 844   2              }
 845   1      }
 846          
 847          void adjust_rev_video(unsigned char num,unsigned char flag)
 848          //调整视频的接收
 849          {
C51 COMPILER V7.07   MAIN                                                                  04/11/2006 11:07:35 PAGE 15  

 850   1              switch(flag)
 851   1              {
 852   2                      case 0:
 853   2                      {
 854   3                              if(rev_video_flag != 0xff)
 855   3                              {
 856   4                                      for (i=0;i<18;i++)
 857   4                                      {
 858   5                                      rev_multi_video.sin_addr[i] = 0;
 859   5                                      }
 860   4                                      rev_multi_video.sin_addr[12] = rev_para_video[rev_video_flag][0];
 861   4                              rev_multi_video.sin_addr[13] = rev_para_video[rev_video_flag][1];
 862   4                              rev_multi_video.sin_addr[14] = rev_para_video[rev_video_flag][2];
 863   4                                      rev_multi_video.sin_addr[15] = rev_para_video[rev_video_flag][3];
 864   4                                      rev_multi_video.sin_port = REV_VIDEO_PORT;
 865   4                                      if(leave(video_revhandle,&rev_multi_video,sizeof(struct sockaddr)) == 0)
 866   4                                      {
 867   5                                              printf("leave from rev_multi_video success! - %bu\r\n",rev_video_flag);
 868   5                                      }
 869   4                                      else
 870   4                                      {
 871   5                                              printf("leave from rev_multi_video failure! - %bu\r\n",rev_video_flag);
 872   5                                      }
 873   4                                      rev_video_flag = 0xff;
 874   4                              }
 875   3                      }
 876   2                      break;
 877   2                      case 2://打开
 878   2                      case 3://调整
 879   2                      {
 880   3                              if(num != rev_video_flag)
 881   3                              {
 882   4                                      if(rev_video_flag != 0xff)
 883   4                                      {
 884   5                                              for (i=0;i<18;i++)
 885   5                                              {
 886   6                                              rev_multi_video.sin_addr[i] = 0;
 887   6                                              }
 888   5                                              rev_multi_video.sin_addr[12] = rev_para_video[rev_video_flag][0];
 889   5                                      rev_multi_video.sin_addr[13] = rev_para_video[rev_video_flag][1];
 890   5                                      rev_multi_video.sin_addr[14] = rev_para_video[rev_video_flag][2];
 891   5                                              rev_multi_video.sin_addr[15] = rev_para_video[rev_video_flag][3];
 892   5                                              rev_multi_video.sin_port = REV_VIDEO_PORT;
 893   5                                              if(leave(video_revhandle,&rev_multi_video,sizeof(struct sockaddr)) == 0)
 894   5                                              {
 895   6                                                      printf("leave from rev_multi_video success! - %bu\r\n",rev_video_flag);
 896   6                                              }
 897   5                                              else
 898   5                                              {
 899   6                                                      printf("leave from rev_multi_video failure! - %bu\r\n",rev_video_flag);
 900   6                                              }
 901   5                                      }
 902   4      
 903   4                                      for (i=0;i<18;i++)
 904   4                                      {
 905   5                                      rev_multi_video.sin_addr[i] = 0;
 906   5                                      }
 907   4                                      rev_multi_video.sin_addr[12] = rev_para_video[num][0];
 908   4                              rev_multi_video.sin_addr[13] = rev_para_video[num][1];
 909   4                              rev_multi_video.sin_addr[14] = rev_para_video[num][2];
 910   4                                      rev_multi_video.sin_addr[15] = rev_para_video[num][3];
 911   4                                      rev_multi_video.sin_port = REV_VIDEO_PORT;      
C51 COMPILER V7.07   MAIN                                                                  04/11/2006 11:07:35 PAGE 16  

 912   4                                      if(join(video_revhandle,&rev_multi_video,sizeof(struct sockaddr)) == 0)
 913   4                                      {
 914   5                                              printf("join to rev_multi_video success! - %bu\r\n",num);
 915   5                                      }
 916   4                                      else
 917   4                                      {
 918   5                                              printf("join to rev_multi_video failure! - %bu\r\n",num);
 919   5                                      }
 920   4                                      rev_video_flag = num;
 921   4                                      syn_setDatagramAddress(video_revhandle, 0, &rev_multi_video);
 922   4                              }
 923   3                      }
 924   2                      break;
 925   2                      default:
 926   2                      break;
 927   2              }
 928   1      }
 929          
 930          void adjust_rev_audio(unsigned char num,unsigned char flag)
 931          //调整音频的接收
 932          {
 933   1              switch(flag)
 934   1              {
 935   2                      case 0:
 936   2                      {
 937   3                              if(rev_audio_flag != 0xff)
 938   3                              {
 939   4                                      for (i=0;i<18;i++)
 940   4                                      {
 941   5                                      rev_multi_audio.sin_addr[i] = 0;
 942   5                                      }
 943   4                                      rev_multi_audio.sin_addr[12] = rev_para_audio[rev_audio_flag][0];
 944   4                              rev_multi_audio.sin_addr[13] = rev_para_audio[rev_audio_flag][1];
 945   4                              rev_multi_audio.sin_addr[14] = rev_para_audio[rev_audio_flag][2];
 946   4                                      rev_multi_audio.sin_addr[15] = rev_para_audio[rev_audio_flag][3];
 947   4                                      rev_multi_audio.sin_port = REV_G711_PORT;
 948   4                                      if(leave(g711_revhandle,&rev_multi_audio,sizeof(struct sockaddr)) == 0)
 949   4                                      {
 950   5                                              printf("leave from rev_multi_audio success! - %bu\r\n",rev_audio_flag);
 951   5                                      }
 952   4                                      else
 953   4                                      {
 954   5                                              printf("leave from rev_multi_audio failure! - %bu\r\n",rev_audio_flag);
 955   5                                      }
 956   4                                      rev_audio_flag = 0xff;
 957   4                              }
 958   3                      }
 959   2                      break;
 960   2                      case 2://打开
 961   2                      case 3://调整
 962   2                      {
 963   3                              if(num != rev_audio_flag)
 964   3                              {
 965   4                                      if(rev_audio_flag != 0xff)
 966   4                                      {
 967   5                                              for (i=0;i<18;i++)
 968   5                                              {
 969   6                                              rev_multi_audio.sin_addr[i] = 0;
 970   6                                              }
 971   5                                              rev_multi_audio.sin_addr[12] = rev_para_audio[rev_audio_flag][0];
 972   5                                      rev_multi_audio.sin_addr[13] = rev_para_audio[rev_audio_flag][1];
 973   5                                      rev_multi_audio.sin_addr[14] = rev_para_audio[rev_audio_flag][2];
C51 COMPILER V7.07   MAIN                                                                  04/11/2006 11:07:35 PAGE 17  

 974   5                                              rev_multi_audio.sin_addr[15] = rev_para_audio[rev_audio_flag][3];
 975   5                                              rev_multi_audio.sin_port = REV_G711_PORT;
 976   5                                              if(leave(g711_revhandle,&rev_multi_audio,sizeof(struct sockaddr)) == 0)
 977   5                                              {
 978   6                                                      printf("leave from rev_multi_audio success! - %bu\r\n",rev_audio_flag);
 979   6                                              }
 980   5                                              else
 981   5                                              {
 982   6                                                      printf("leave from rev_multi_audio failure! - %bu\r\n",rev_audio_flag);
 983   6                                              }
 984   5                                      }
 985   4      
 986   4                                      for (i=0;i<18;i++)
 987   4                                      {
 988   5                                      rev_multi_audio.sin_addr[i] = 0;
 989   5                                      }
 990   4                                      rev_multi_audio.sin_addr[12] = rev_para_audio[num][0];
 991   4                              rev_multi_audio.sin_addr[13] = rev_para_audio[num][1];
 992   4                              rev_multi_audio.sin_addr[14] = rev_para_audio[num][2];
 993   4                                      rev_multi_audio.sin_addr[15] = rev_para_audio[num][3];
 994   4                                      rev_multi_audio.sin_port = REV_G711_PORT;
 995   4      
 996   4                                      if(join(g711_revhandle,&rev_multi_audio,sizeof(struct sockaddr)) == 0)
 997   4                                      {
 998   5                                              printf("join to rev_multi_audio success! - %bu\r\n",num);
 999   5                                      }
1000   4                                      else
1001   4                                      {
1002   5                                              printf("join to rev_multi_audio failure! -  %bu\r\n",num);
1003   5                                      } 
1004   4                                      rev_audio_flag = num;
1005   4                                      syn_setDatagramAddress(g711_revhandle, 0, &rev_multi_audio);    
1006   4                              }
1007   3                      }
1008   2                      break;
1009   2                      default:
1010   2                      break;
1011   2              }
1012   1      } 


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   8708    ----
   CONSTANT SIZE    =   2489    ----
   XDATA SIZE       =   2348     139
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     40    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
   EDATA SIZE       =   ----    ----
   HDATA SIZE       =   ----    ----
   XDATA CONST SIZE =   ----    ----
   FAR CONST SIZE   =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -