- 博客(24)
- 收藏
- 关注
转载 sip
一、SIP协议的背景和功能 SIP( 会话初始协议)的开发目的是用来帮助提供跨越因特网的高级电话业务。因特网电话(IP电话)正在向一种正式的商业电话模式演进,SIP就是用来确保这种演进实现而需要的NGN(下一代网络)系列协议中重要的一员。 SIP是IETF标准进程的一部分,它是在诸如SMTP(简单邮件传送协议)和HTTP(超文本传送协议)基础之上建立起来的。它用来建立,改变和终止基于IP网络的
2012-01-19 17:09:26
262
转载 socket
常用的Socket类型有两种:流式Socket (SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。流式是一种面向连接的Socket,针对于面向连接的TCP服务应用;数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用。 Socket建立 为了建立Socket,程序可以调用Socket函数,该函数返回一个类似于文件描述符的句柄。sock
2012-01-19 15:25:44
415
原创 6.6.2
<br />int main()<br />{<br /> char ch[4]={'a','b','e','d'};<br /> int i=0;<br /> <br /> for(int t=0;t<4;t++)<br /> {<br /> switch (ch[t])<br /> {<br /> case 'a':<br /> case 'b':<br /> case 'c':<br /> case 'd':<br /> ++i;<br /> break;<
2011-05-20 08:52:00
183
原创 7.9-4
<br />void s(){}<br />void show (void (*i)())<br />{<br /> cout << i << endl;<br />}<br /> <br />int main()<br />{<br /> void (*p)();<br /> p=s;<br /> show(p);<br /> <br />system("pause");<br />}
2011-05-19 09:05:00
200
原创 7.8.4-3
<br />void show (int* const i){};//不能基于指针本身是否为const来实现重载<br />//void show (int* i){}; error redeclaration<br /> <br /> <br />int main()<br />{<br /> <br />}
2011-05-19 08:40:00
189
原创 7.8
<br />void show(const int& i){}//有const引用的形参与非const引用形参的函数是不同的 <br />void show(const int i){}<br /> <br /> <br />void show(const int *i){}//类似地,函数带有指向const类型的指针形参,与指向相同类型的非const函数是不同的。<br />void show(int *i){}<br /> <br /> <br /> <br /> <br />int main()<br
2011-05-19 08:12:00
191
原创 7.3.1
<br />void s();<br /> <br />void show (int (&p)[3])<br />{<br /> return (s());//void 只能返回拎一个返回类型同样是void的函数调用结果<br />}<br /> <br />void s ()<br />{<br /> <br />}<br /> <br />int main()<br />{<br /> int a[3]={1,2,3};<br /> cout<<sizeof(a)<<endl;<br
2011-05-16 14:31:00
201
原创 8.5-1
<br />#include <sstream><br /> <br />int main()<br />{<br /> string s="hellow world";<br /> string w;<br /> istringstream is(s);<br /><br /> while(is>>w)<br /> {<br /> cout<<w<<endl;//hellow <br /> //world<br /> <br /
2011-05-12 16:47:00
203
原创 8.3-3
<br />int main()<br />{<br /> cin.tie(&cout);//tie函数可用istream或ostream对象调用<br /><br /> ostream *old_tie=cin.tie();//使用一个指向ostream对象的指针形参<br /><br /> //cin.tie()返回当前所绑定的对象<br /> *cin.tie()<<"hello world"<<endl;//输出hello world<br /><br /> cin.tie(0);//打破
2011-05-12 12:44:00
215
原创 8.1-2
<br /><br />//形参或返回类型是IO对象必须传递或返回指向该对象的指针或引用 <br />ofstream& show(ofstream& out)<br />{<br /> return out;<br />}<br />
2011-05-12 10:34:00
190
原创 9.6.3-1
<br />int main()<br />{<br /> string s="hello";<br /> string s1;<br /> //substr在string对象中检索需要的子串<br /> //传递一个起点和一个计数器<br /> s1=s.substr (1,4);<br /> cout<<s1<<endl;//ello<br /> <br /> //从位置0到最后<br /> s1=s.substr (0);<br /> cout<<s1<<endl;<br /><br /> syste
2011-02-14 15:36:00
219
原创 9.6.2-2
<br />int main()<br />{<br /> char *p="abcdefg";<br /> string s="hijkl";<br /> //用p标记范围内的元素替换掉s<br /> s.assign (p,p+4);<br /> cout<<s<<endl;//abcd<br /> <br /> <br /> string s1="hello";<br /> //将string的副本插入到另一个对象中<br /> s.insert (s.begin()+4,s1.begin (),s1
2011-02-14 15:30:00
190
原创 9.6.2-1
<br />int main()<br />{<br /> string s="welcome";<br /> //使用下标而不是用时代器删除<br /> s.erase (s.size()-4,4);<br /> cout<<s<<endl;//wel<br /> <br /> s="welcome";<br /> string ::iterator p=s.begin ();<br /> //删除时代器标记范围内的元素<br /> s.erase (p,p+3);<br /> cout<<s<<endl
2011-02-14 11:58:00
202
原创 9.6.2
<br /><br />int main()<br />{<br /> string s="welcome";<br /> string::iterator p=s.begin ()+3;<br /> s.erase (p);//删除p所指向的元素<br /> cout<<s<<endl;//welome<br /> <br /> p=s.begin ()+3;//o<br /> string ::iterator q;<br /> q=s.insert (p,'c');//在p所指向元素之前插
2011-02-14 11:44:00
236
原创 9.6.1
int main(){ //string s(1); error string不支持单个容器长度作为参数的构造函数 string s;//创建string对象时不提供任何参数得到空string string a(3,'a'); cout string b(a.begin (),a.end());//将新对象初始化为另一个对象的副本 cout char *p="welcome"; string c(p);//用p所指向的(以NULL结束)C风格字符串初始化 cout /* char q[]={'a','b'
2011-02-14 11:25:00
265
原创 3.2.2-2
<br />int main()<br /> {<br /> string s;<br /> getline(cin,s);//getline接受两个形参:输入流和string对象 <br /> //从输入流的下一行读取,并保存到string,但不包括换行符,遇到换行返回<br /> // hellow world回车<br /><br /> cout<<s<<endl;//hellow worl
2011-02-13 19:50:00
207
原创 3.2.2
<br />int main()<br /> {<br /> string s;<br /> cin>>s; //输入: hellow world<br /><br /> //string:读取并忽略开头所有的空白字符(空格,换行符,制表符)<br /> //读取字符直至再次遇到空白字符,读取终止。<br /><br /> cout<<s<<endl;//输出:hellow<br /><br /><br /><br /><br /> syste
2011-02-13 19:45:00
204
原创 2.7
<br />int main()<br /> {<br /> enum e{x,y=3,z};<br /> <br /> e a=x;<br /> e b=y;<br /> e c=z;<br /><br /> cout<<a<<endl;//0 第一个默认为0<br /> cout<<b<<endl;//3 显示定义<br /> cout<<c<<endl;//4 下一个成员默认比前个一大1<br /><br />
2011-02-13 19:44:00
272
原创 2.5-3
<br />int main()<br /> {<br /> const int ival=1024;<br /> const int &refval=ival;//ok both reference and object are const<br /> //const引用是指向const对象的引用<br /> //因为不能对ival修改,因此不能通过refval来修改ival<br />
2011-02-13 19:42:00
192
原创 2.5-1
<br />int main()<br /> {<br /> double a=9.3;<br /> double &b=a;<br /> double &c=a;<br /> cout<<b<<c<<endl;//9.3 9.3<br /><br /> double &d=b;<br /><br /> cout<<d<<endl;//9.3<br /><br /> int x=1,y=2;<br /> int &i=x;<br /> // int &i
2011-02-13 19:35:00
227
原创 2.4-2
<br />first_head.h<br /> --------------------------------<br /> #include<iostream><br /> using namespace std;<br /><br /> int a=10;//非const变量默认为extern<br /> //const int a=10;//error:在全局作用域声明的const变量是定义该对象的文件的局部变量<br /> 此文件只存在于那个文件中
2011-02-13 19:34:00
169
原创 2.3.6
<br />int main()<br /> {<br /> int sum=0;<br /> for(int i=0;i<10;i++)<br /> sum+=i;<br /> <br /> cout<<i<<endl; //error:只能在for语句中使用,不能在main函数的其他地方使用,具有语句作用域<br /><br /><br /><br /> system("pause");<br /> }<br /><br /><br /> ------
2011-02-13 19:31:00
189
原创 2.3.5
<br />//只有当extern声明位于函数外部时,才可以含有初始化式<br /> //extern int a=10;//如果声明有初始化,那么它当作定义,即使有声明标记extern<br /> //int a; error:以初始化的extern声明当作定义,所以该变量随后的定义都是错误的<br /><br /> int main()<br /> {<br /> extern int a;//声明(不是定义,不分配空间)<br /> //extern int a;//程序中变量可以
2011-02-13 19:27:00
252
原创 2.2-7
<br />int main()<br />{<br />//反斜杠后必须是该行的尾字符<br /> cout<<"avc/<br /> ds"<<endl; //后继行首的任何空格和制表符都是字符串自面值的一部分<br /> system("pause");<br />}
2011-02-13 19:23:00
160
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人