posted @ 2015-11-13 15:11 勇敢的鑫 阅读(765) 评论(0) 推荐(0) 编辑
摘要:
利用移位操作代替乘除操作可以提高代码的效率:/*利用移位运算代替乘除,可以提高代码效率*/class YiWeiTest { public static void main(String[] args) { int a = 2, b, c; b = 2 > 2; // 8/4 sop("... 阅读全文
摘要:
包名:多个单词组成是所有单词字母小写。类名、接口名:所有单词首字母大写。变量名、函数名:多单词组成时第一个单词首字母小写,从第二个单词开始首字母大写。常量名:所有字母大写,单词之间用 “_” 连接。 阅读全文
posted @ 2015-11-13 11:36 勇敢的鑫 阅读(179) 评论(0) 推荐(0) 编辑
摘要:
这一节主要关注的还是粘包问题,我们利用recv实现一个recv_peek函数,它的目的是偷窥目的,它是利用recv的一个msg_peek参数与read的区别,read读取后会擦除缓冲区的内容,而recv结合msg_peek会读取的时候并不擦除缓冲区的内容,起到一个可以偷窥的目的,利用这个特性可以用r... 阅读全文
posted @ 2015-04-28 00:31 勇敢的鑫 阅读(126) 评论(0) 推荐(0) 编辑
摘要:
tcp是基于字节流的,udp是基于报文即数据包的,所以tcp会产生一个叫做粘包的问题,而udp不会产生。我们这节主要讨论粘包问题:先看一下粘包问题的原因:总结如下:1、应用进程的缓冲区和Socket缓冲区的大小不一定相吻合。2、tcp传输段有mss限制。3、链路层有个mtu限制。粘包的解决方案:1、... 阅读全文
posted @ 2015-04-26 22:54 勇敢的鑫 阅读(144) 评论(0) 推荐(0) 编辑
摘要:
//需要目标名和程序名字相同.PHONY:clean all //伪目标CC=gccCFLAGS=-Wall -gBIN= //目标all:$(BIN)%.o:%.c $(CC) $(CFLAGS) -c $< -o $@clean: ... 阅读全文
posted @ 2015-04-26 22:41 勇敢的鑫 阅读(132) 评论(0) 推荐(0) 编辑
摘要:
有个SO_REUSEADDR值得注意一下:服务器端尽可能使用SO_REUSEADDR在绑定之前尽可能调用setsockopt来设置SO_REUSEADDR套接字选项。使用SO_REUSEADDR选项可以使得不必等待TIME_WAIT状态消失就可以重启服务器。也就是如果你不这样子用的话会出现这样的问题... 阅读全文
posted @ 2015-04-12 23:28 勇敢的鑫 阅读(155) 评论(0) 推荐(0) 编辑
摘要:
TCP客户/服务器模型:从图中就可以看出基本的过程来。回射客户/服务器:这个是回射的图示,客户端发给服务端,服务端在发回给客户端。socket函数:包含头文件功能:创建一个套接字用于通信原型int socket(int domain, int type, int protocol);参数domain... 阅读全文
posted @ 2015-04-12 18:19 勇敢的鑫 阅读(113) 评论(0) 推荐(0) 编辑
摘要:
socket可以看成是用户进程与内核网络协议栈的编程接口。socket不仅可以用于本机的进程间通信,还可以用于网络上不同主机的进程间通信。IPv4套接口地址结构通常也称为“网际套接字地址结构”,它以“sockaddr_in”命名,定义在头文件中struct sockaddr_in { uint8_... 阅读全文
posted @ 2015-04-12 04:09 勇敢的鑫 阅读(156) 评论(0) 推荐(0) 编辑