- 博客(12)
- 收藏
- 关注
原创 memset的妙用
以前在学校学习编程的时候,都没有怎么用memset初始化内存。但是在实际开发中这是必要的,你新申请的某块内存可能有其他软件使用过的残留的数据,所以要清空。一个字符串数组也需要初始化。#include #include #include int main() { char str1[]="abcdefg"; char str2[5]={0}; strnc
2017-08-29 20:25:49 10561 1
原创 客户端返回400错误
今天测试终端连接服务器,返回400错误,定位了一下,是终端post请求问题。我们post的数据是json格式的,但是Content-Type却是application/x-www-form-urlencoded,把Content-Type改为application/json就搞定了。
2017-08-29 18:01:32 12415 3
原创 TCP_DEFER_ACCEPT
该选项的意思是:当接收到第一个数据之后,才会创建连接,这是为防止空连接的攻击,直接看代码吧。[mapan@localhost sockOption]$ lsclient.cpp makefile server.cpp[mapan@localhost sockOption]$ cat server.cpp #include #include #include #include
2017-08-28 18:31:06 10545 2
原创 close和SO_LINGER
close函数的作用是关闭套接字,并终止TCP连接。unix网络编程这本书上是这样说的,我觉得这个解释有人会让人产生误解。close了某个socket,该socket就真的必须关闭吗?其实不是,close是将该套接字的引用计数减1,当某个套接字的引用计数为0时,该套接字就被关闭了;不为0,就不会被关闭。多进程并发服务器中会出现这种情况,我开始就误解了。 SO_LING
2017-08-26 14:12:20 10627 2
原创 SO_SNDTIMEO和SO_RCVTIMEO
SO_SNDTIMEO和SO_RCVTIMEO这两个套接字选项用来设置超时时间的,看代码吧。[mapan@localhost sockOption]$ lsclient.cpp makefile server.cpp[mapan@localhost sockOption]$ cat client.cpp #include #include #include #include
2017-08-23 16:24:00 12580 2
原创 SO_SNDBUF和SO_RCVBUF
这两个选项就是设置和获取缓冲区的大小,看代码吧。发送缓冲区:[mapan@localhost unixNetwork]$ cat test.cpp #include #include #include #include #include #include #include #include #include #include #include #include #
2017-08-23 15:16:01 11210 1
原创 拼接JSON字符串
传输数据时经常要用到JSON格式,拼接JSON字符串是常用的事,这里记录一下,直接看代码吧。[mapan@localhost unixNetwork]$ cat test.cpp #include #include void func(char test1[],char test2[],char test3[]){ char test[100]; sprint
2017-08-22 17:15:25 13828 1
原创 shutdown函数和FIN_WAIT2状态
玩过英雄联盟的人都不会对shutdown感到陌生,就是你连杀被终结了嘛。在网络编程中也差不多是这个意思,准确来说是从容关闭。有啥用呢?来看代码吧[mapan@localhost TCP]$ lsclient.cpp makefile server.cpp[mapan@localhost TCP]$ cat server.cpp #include #include #include
2017-08-20 16:44:00 11000 1
原创 listen函数
listen函数,从英语上理解就是一个"听"函数,实际上它也就是这个意思。我们来看unix网络编程这本书是怎样对它的解释:listen函数把一个未连接的套接字转换成一个被动套接字,指示内核应该接受指向该套接字的链接请求。该函数有2个参数,第一个我就不说了,第二参数规定了内核为相应套接字排队的最大连接个数。只看这些理论搞的人稀里糊涂,我们还是来测一下。[mapan@localhost test]
2017-08-19 20:54:04 14810 1
原创 bind函数
学网络编程不得不提到bind函数,bind函数的作用不言而喻,就是给套接字取一个姓名。在生活中,姓氏代表家族,名表示你是家族的哪个人。在网络中也是这样,IP标识主机,进程标识端口。所以要给套接字绑定一个IP和端口,不然谁认识你,特别是服务端。客户端随后说。
2017-08-18 11:42:48 10606 2
原创 两个不同的文件相互引用全局变量
一个工程下有很多文件,都是用makefile进行管理的,但是一个文件怎么去调用另外一个文件中的全局变量呢?这个工作也涉及了很多。
2017-08-16 17:18:49 13493 3
原创 int main(int argc, char* argv[])
以前学C语言的时候,很少用到int argc,char *argv[],感觉没啥用,所以也就没怎么了解。现在用到了,来学习一下。argc命令行输入参数的数量,argv是字符数组,看代码。[mapan@localhost mapam]$ lstest.cpp[mapan@localhost mapam]$ g++ test.cpp [mapan@localhost mapam]$ cat
2017-08-12 17:41:16 10508 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人