读书人

初涉通讯的一些感受和想法3

发布时间: 2012-12-25 16:18:28 作者: rapoo

初涉通信的一些感受和想法3
写完了远程控制的程序,看电脑右下角的时钟发现已经是三点了。回顾这三天的编程生活,感慨万千,一下子竟不知道从何写起。

照惯例还是先聊生活的感受吧:
1.追求性能的优化 胡_总让我看了孙威关于双缓冲队列的博客 让我知道了 如果下很大的功夫,能够快上几个毫秒 足矣。 是我学习的方向之一

2.对自己不喜欢的技术也要坚持搞下去 花在双缓冲队列的时间很多,但最后得出来的结果跟学长得出来的结果完全不一样,过程很烦,但还是坚持下去了。最终虽然没能够收获到很多的技术,但却收获到了很多技术方面之外的东西,很多观念的转变。

3.编程时的状态很重要
1.中午不睡午觉导致上课的时候经常情不自禁地想睡,所以错过了很多内容,衔接不上,感觉云里雾里的
2.状态不佳导致思路不清晰,思路不清晰导致编不好程,编不好程导致状态更不佳
3.做了一次大扫除,心情突然变好了,状态开始改变 其实一天能做完三天该做的事

4.永远不怕迟
和孙威学长聊了一个晚上,才知道他当年去学的时候,已经毕业了,大部分都是自学,期间跳了3次班。之前有的时候还会后悔怎么来蓝杰之后怎么没有早点好好学,可和威哥比起来,我还是算早的了。有心的话,时间不是问题吧。
PS:威哥还教我,跟胡_总聊天怎么能没烟呢!我只能无奈地表示抽烟只能从娃娃抓起……

5.凭的就是一股冲劲 拼的就是一腔热血
编程嘛,总是会遇到各种困难,各种不称心的事,胡_总常对我说:你给我死命地拼就是了。11点之前,我的程序还是运行不了又或者是各种bug,经过4个小时连续不断地寻找问题,测试,排错,又出现错误,再测试,再排错……之后,程序终于能跑起来了。搞完之后给我的感觉除了爽,还是爽。面对困难的时候,骂几句粗口先爽一下,然后再对自己说一句:哥拼了还不行吗?只要挺过去了,困难也就自然而然地被解决了。

下面是技术的总结:
1.写了一个简单的日志"系统"
原本以为很复杂,写了之后觉得也就那么回事,记录了运行的时间,运行的类,信息,错误类型等,还加上了以日期为文件名的保存日志的功能

2.写了一个最简单的基于UDP协议的通信程序,还是颇有感受的。
1.与TCP协议差别还是挺大的,其中一个方面是没有建立管道。怎么证明呢?看代码

System.out.println(receiver.gereceiver.getRemoteSocketAddress);//receiver为UDP客户机的Socket对象
打印结果是null,说明UDP的服务器和客户端并没有建立管道

2.发送接收的流程
发送方 1.创建本地地址对象 2.创建本地Socket对象 3.创建接收者地址对象 4.创建包对象(消息内容字节数组,字节数组长度,接收方地址对象) 5.利用send发送包对象
接收方 1.创建本地地址对象 2.创建本地Socket对象 3.创建包对象(缓冲区数组,缓冲区数组大小(容纳消息内容而不是包内容)) 4.利用receive接收包对象(会阻塞) 5.解析包信息

3.在网络差的地方丢失还是挺多的 测试了一下 发送100000个包 收到的只有24569包

3.写了一个简单的UDP组播信息,觉得理解起来还是有点难度的
1.没有明确的客户端和服务器的区别
2.所有用户都应该连上一个虚拟的D类IP地址
发:1.创建一个虚拟地址对象 2.创建组播Socket对象(无参数) 3.创建数据报对象(字节数组,长度,组播地址,端口) 4.发送数据报
收:1.创建组播Socket对象(端口) 2.将组播地址加入到Socket对象 3.创建接收包对象(缓冲区数组,大小) 4.接收数据包对象

文件传输 本来以为是顺手拈来的事情,没想到还是出了各种差错 主要是文件读写的问题

后来解决得差不多了,本来是想写篇《文件读写你不知道的两三事》的日志,但后来发现自己也不是搞得太懂,也就放弃了

1.先来一条简单的 创建FileOutputStream对象时需要传入File文件,此时File文件内容会被清空。
2.再来一个基础的 创建FileInputStream对象时传入的File文件必须存在
3.OK,再来一个 dos.write(str.getBytes())和dos.writeBytes(str)有什么区别?(dos为DataOutputStream对象)这个问题没解决,只是知道writeBytes是按顺序写出字符串中每个字符,丢弃其八个高位。按顺序写出字符串中每个字符,丢弃其八个高位。而且用dis.read(byte[] b) 和 dis.readFully(byte[] b)都会出现读取错误
4.dis.read(byte[] b)和dis.readFully(byte[] b)的区别 暂时测试得到的好像两个都是一样的效果
5.远程连接


读书人网 >编程

热点推荐