自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除