2011-04-18 61 views
0

我需要相關的場景在那裏我有存儲與SIP數組INVITE消息文本更改值,並將其存儲字符數組用C

char array_invite[] =  "INVITE sip:[email protected] SIP/2.0\r\n" 
          "Via:SIP/2.0/UDP 5.6.7.8:39708;\r\n" 
          "Max-Forwards: 70\r\n" 
          "Contact:<sip:[email protected] 5.6.7.8>\r\n" 
          "To: <sip:[email protected]>; \r\n" 
          "From: \042Client\042<sip:[email protected]>;\r\n" 
          "Call-ID: abcdefg\r\n" 
          "CSeq: 1 INVITE\r\n" 
          "Content-Type: application/sdp\r\n" 
          "Content-Length: 142\r\n"; 

我想改變的硬編碼值的一些信息IP地址(1.2.3.4和5.6.7.8)和ID號碼(302和305),並使其成爲動態的,以便我想在我的終端輸出中手動輸入值,以便對於每個會話我可以連接到不同的遠程地址。由於我不是那麼流利的C我發佈這個問題。

任何人有這如何可以在C做了一個想法,可能是一個例子將是一件好事

問候 開發

回答

0

使用sprintf會工作。

char array_invite[MAXLENGTH]; 
sprintf(array_invite,"Meet me at port %d\n",portnum); 
0

您應該使用snprintf()建立從格式化的「模板」的字符串,像這樣:

char buffer[4096]; 
int ip{[4]; 

ip[0] = 1; 
ip[1] = 2; 
ip[2] = 3; 
ip[3] = 4; 

snprintf(buffer, sizeof buffer, "INVITE sip:[email protected]%d.%d.%d.%d SIP/2.0\r\n" 
          "Via:SIP/2.0/UDP 5.6.7.8:39708;\r\n" 
          "Max-Forwards: 70\r\n" 
          "Contact:<sip:[email protected] 5.6.7.8>\r\n" 
          "To: <sip:[email protected]>; \r\n" 
          "From: \042Client\042<sip:[email protected]>;\r\n" 
          "Call-ID: abcdefg\r\n" 
          "CSeq: 1 INVITE\r\n" 
          "Content-Type: application/sdp\r\n" 
          "Content-Length: 142\r\n", ip[0], ip[1], ip[2], ip[3]); 

在這裏,我只模板化的第一個IP地址,並代表其四int:■ 。您需要將其擴展爲您想要動態格式化的其餘字段。

+0

感謝您的寶貴信息。 – Devb 2011-04-18 15:37:30

相關問題