﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Xiaobo Sun -最新评论</title><link>http://www.blogjava.net/sunxiaobo/CommentsRSS.aspx</link><description>Eclipse-Unix
http://umlfact.berlios.de/~s_xsun/</description><language>zh-cn</language><pubDate>Sun, 02 Aug 2009 10:15:19 GMT</pubDate><lastBuildDate>Sun, 02 Aug 2009 10:15:19 GMT</lastBuildDate><generator>cnblogs</generator><item><title>re: Java Stream</title><link>http://www.blogjava.net/sunxiaobo/archive/2008/12/16/201513.html#246666</link><dc:creator>Xiaobo Sun</dc:creator><author>Xiaobo Sun</author><pubDate>Tue, 16 Dec 2008 08:52:00 GMT</pubDate><guid>http://www.blogjava.net/sunxiaobo/archive/2008/12/16/201513.html#246666</guid><description><![CDATA[public static void main(String[] args) throws IOException {<br>		BufferedReader bufferedReader = new BufferedReader(<br>				new InputStreamReader(System.in));<br>		String s;<br>		while (bufferedReader.read() != -1) {<br>			System.out.println(&quot;input something:&quot;);<br>			s = bufferedReader.readLine();<br>			System.out.println(&quot;input is: &quot; + s);<br>		}<br>	}<br>======================================<br>java   io   有两种类型的读写方法。  <br>   <br>  一种是以字节为单位读写的，InputStream、OutputStream(interface)   下面有很多类像FileInputStream、PipedInputStream   等皆继承了上述接口。  <br>   <br>  另外一种就是你上面提到的以unicode为单位进行读写的方法。   表现为   Reader、Writer、接口，像BufferedReader   就继承了Reader接口。  <br>   <br>  BufferedReader     ****===&gt;   在读取的时候，会先开辟一个缓冲区，把这些数据读到缓冲区，等到满了以后，就直接拿出来。  <br>   <br>  至于InputStreamReader，****===&gt;   An   InputStreamReader   is   a   bridge   from   byte   streams   to   character   streams:   It   reads   bytes   and   translates   them   into   characters   according   to   a   specified   character   encoding.通过这个类可以把这两种方式读取出来的信息相互切换。  <br>   <br>  system.in   ****===&gt;   这是控制台输入信息时读入的管道。她继承PrintStream   ,而PrintStream   类   继承了FilterOutputStream   类。这个类实现了OutputStream   接口。  <img src ="http://www.blogjava.net/sunxiaobo/aggbug/246666.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sunxiaobo/" target="_blank">Xiaobo Sun</a> 2008-12-16 16:52 <a href="http://www.blogjava.net/sunxiaobo/archive/2008/12/16/201513.html#246666#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: Linux 启动</title><link>http://www.blogjava.net/sunxiaobo/archive/2008/12/11/245593.html#245595</link><dc:creator>Xiaobo Sun</dc:creator><author>Xiaobo Sun</author><pubDate>Wed, 10 Dec 2008 19:32:00 GMT</pubDate><guid>http://www.blogjava.net/sunxiaobo/archive/2008/12/11/245593.html#245595</guid><description><![CDATA[启动服务<br><br> 安装完成后，vsftpd是作为一个独立的服务启动，不接受xinetd的管理。系统会自动在Service列表中添加名称vsftpd的服务。启动服务的步骤如下：<br><br>　　1、Yast→System→System Services(Run level)；<br><br>　　2、在服务列表中选择vsftpd，点击下方的Enable按钮，启动服务，Finish。<br><br>　　注意，在启动vsftpd时可能会不能启动，有时是因为它所依赖的服务没有启动，如syslog，这时选中syslog，点击Enable按钮。如果还是不能启动，可以重新启动xinetd服务，然后再启动vsftpd服务。<img src ="http://www.blogjava.net/sunxiaobo/aggbug/245595.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sunxiaobo/" target="_blank">Xiaobo Sun</a> 2008-12-11 03:32 <a href="http://www.blogjava.net/sunxiaobo/archive/2008/12/11/245593.html#245595#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: pkg-config学习 </title><link>http://www.blogjava.net/sunxiaobo/archive/2008/10/15/234504.html#234505</link><dc:creator>Xiaobo Sun</dc:creator><author>Xiaobo Sun</author><pubDate>Wed, 15 Oct 2008 11:15:00 GMT</pubDate><guid>http://www.blogjava.net/sunxiaobo/archive/2008/10/15/234504.html#234505</guid><description><![CDATA[CC = gcc<br>all:<br>    $(CC) `pkg-config --cflags --libs gtk+-2.0` hello.c -o hello<br><img src ="http://www.blogjava.net/sunxiaobo/aggbug/234505.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sunxiaobo/" target="_blank">Xiaobo Sun</a> 2008-10-15 19:15 <a href="http://www.blogjava.net/sunxiaobo/archive/2008/10/15/234504.html#234505#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: Makefile example</title><link>http://www.blogjava.net/sunxiaobo/archive/2008/10/09/233437.html#233454</link><dc:creator>Xiaobo Sun</dc:creator><author>Xiaobo Sun</author><pubDate>Thu, 09 Oct 2008 14:08:00 GMT</pubDate><guid>http://www.blogjava.net/sunxiaobo/archive/2008/10/09/233437.html#233454</guid><description><![CDATA[如果你要传递变量到下级Makefile中，那么你可以使用这样的声明：<br>export &lt;variable ...&gt;;<br><br>export variable := value<br>其等价于：<br>variable := value<br>export variable<br><br>export variable += value<br>其等价于：<br>variable += value<br>export variable<img src ="http://www.blogjava.net/sunxiaobo/aggbug/233454.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sunxiaobo/" target="_blank">Xiaobo Sun</a> 2008-10-09 22:08 <a href="http://www.blogjava.net/sunxiaobo/archive/2008/10/09/233437.html#233454#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: Makefile example</title><link>http://www.blogjava.net/sunxiaobo/archive/2008/10/09/233437.html#233442</link><dc:creator>Xiaobo Sun</dc:creator><author>Xiaobo Sun</author><pubDate>Thu, 09 Oct 2008 13:07:00 GMT</pubDate><guid>http://www.blogjava.net/sunxiaobo/archive/2008/10/09/233437.html#233442</guid><description><![CDATA[看一个例子：<br>objects = foo.o bar.o<br>all: $(objects)<br>$(objects): %.o: %.c<br>$(CC) -c $(CFLAGS) $&lt; -o $@<br>上面的例子中，指明了我们的目标从$object中获取，“%.o”表明要所有以“.o”结尾的<br>目标，也就是“foo.o bar.o”，也就是变量$object集合的模式，而依赖模式“%.c”则取模<br>式“%.o”的“%”，也就是“foo bar”，并为其加下“.c”的后缀，于是，我们的依赖目标<br>就是“foo.c bar.c”。而命令中的“$&lt;”和“$@”则是自动化变量，“$&lt;”表示所有的依赖<br>目标集（也就是“foo.c bar.c”），“$@”表示目标集（也就是“foo.o bar.o”）。于是，<br>上面的规则展开后等价于下面的规则：<br>foo.o : foo.c<br>$(CC) -c $(CFLAGS) foo.c -o foo.o<br>bar.o : bar.c<br>$(CC) -c $(CFLAGS) bar.c -o bar.o<br>试想，如果我们的“%.o”有几百个，那种我们只要用这种很简单的“静态模式规则”就<br>可以写完一堆规则，实在是太有效率了<img src ="http://www.blogjava.net/sunxiaobo/aggbug/233442.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sunxiaobo/" target="_blank">Xiaobo Sun</a> 2008-10-09 21:07 <a href="http://www.blogjava.net/sunxiaobo/archive/2008/10/09/233437.html#233442#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: Makefile example</title><link>http://www.blogjava.net/sunxiaobo/archive/2008/10/09/233437.html#233438</link><dc:creator>Xiaobo Sun</dc:creator><author>Xiaobo Sun</author><pubDate>Thu, 09 Oct 2008 12:57:00 GMT</pubDate><guid>http://www.blogjava.net/sunxiaobo/archive/2008/10/09/233437.html#233438</guid><description><![CDATA[# macro<br>GSOAPPATH=../../<br>CCINCLUDE= -I$(GSOAPPATH)<br>#CCINCLUDE+= -I$(RESPONSEPATH)<br>CCFLAGS= -Wall -g<br>OBJECTS= soapServiceRequestIFSOAPService.o soapC.o stdsoap2.o \<br>                 soapServiceResponseIFSOAPProxy.o<br># targets<br>all : server++ client++<br><br>server++ : server.cpp $(OBJECTS)<br>        g++ $(CCFLAGS) $(CCINCLUDE) $^ -o $@<br><br>client++ : client.cpp soapC.o stdsoap2.o soapServiceResponseIFSOAPProxy.o<br>        g++ $(CCFLAGS) $(CCINCLUDE) $^ -o $@<br><br>soapServiceRequestIFSOAPService.o : soapServiceRequestIFSOAPService.cpp<br>        g++ -c $(CCINCLUDE) $^<br><br>soapC.o : soapC.cpp<br>        g++ -c $(CCINCLUDE) $^<br><br>stdsoap2.o : $(GSOAPPATH)stdsoap2.cpp<br>        g++ -c $(CCINCLUDE) $^<br><br>soapServiceResponseIFSOAPProxy.o : soapServiceResponseIFSOAPProxy.cpp<br>        g++ -c $(CCINCLUDE) $^<br><br>clean :<br>        rm -f server++ client++ *.o *~ *.swp<br><br>.PHONY : all clean<br><img src ="http://www.blogjava.net/sunxiaobo/aggbug/233438.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sunxiaobo/" target="_blank">Xiaobo Sun</a> 2008-10-09 20:57 <a href="http://www.blogjava.net/sunxiaobo/archive/2008/10/09/233437.html#233438#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: TCP: SYN ACK FIN RST PSH URG</title><link>http://www.blogjava.net/sunxiaobo/archive/2008/10/09/220702.html#233422</link><dc:creator>Xiaobo Sun</dc:creator><author>Xiaobo Sun</author><pubDate>Thu, 09 Oct 2008 11:38:00 GMT</pubDate><guid>http://www.blogjava.net/sunxiaobo/archive/2008/10/09/220702.html#233422</guid><description><![CDATA[其实在握手和结束时确认号应该是对方序列号加1,传输数据时则是对方序列号加上对方携带应用层数据的长度.如果从以太网包返回来计算所加的长度,就嫌走弯路了.  <br>  另外,如果对方没有数据过来,则自己的确认号不变,序列号为上次的序列号加上本次应用层数据发送长度.   <img src ="http://www.blogjava.net/sunxiaobo/aggbug/233422.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sunxiaobo/" target="_blank">Xiaobo Sun</a> 2008-10-09 19:38 <a href="http://www.blogjava.net/sunxiaobo/archive/2008/10/09/220702.html#233422#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: TCP: SYN ACK FIN RST PSH URG</title><link>http://www.blogjava.net/sunxiaobo/archive/2008/10/09/220702.html#233420</link><dc:creator>Xiaobo Sun</dc:creator><author>Xiaobo Sun</author><pubDate>Thu, 09 Oct 2008 11:35:00 GMT</pubDate><guid>http://www.blogjava.net/sunxiaobo/archive/2008/10/09/220702.html#233420</guid><description><![CDATA[握手阶段：  <br>  序号    方向        seq        ack                        <br>  1　　A-&gt;B    10000        0          <br>  2     B-&gt;A    20000    10000+1=10001        <br>  3     A-&gt;B    10001    20000+1=20001  <br>  解释：  <br>  1：A向B发起连接请求，以一个随机数初始化A的seq,这里假设为10000，此时ACK＝0  <br>   <br>  2：B收到A的连接请求后，也以一个随机数初始化B的seq，这里假设为20000，意思是：你的请求我已收到，我这方的数据流就从这个数开始。B的ACK是A的seq加1，即10000＋1＝10001  <br>   <br>  3：A收到B的回复后，它的seq是它的上个请求的seq加1，即10000＋1＝10001，意思也是：你的回复我收到了，我这方的数据流就从这个数开始。A此时的ACK是B的seq加1，即20000+1=20001  <br>   <br>   <br>  数据传输阶段：  <br>  序号　　方向　　　　　　seq                                     ack                       size  <br>  23           A-&gt;B                       40000                                   70000                     1514  <br>  24           B-&gt;A                       70000                     40000+1514-54=41460       54  <br>  25           A-&gt;B                       41460                     70000+54-54=70000           1514  <br>  26           B-&gt;A                       70000                     41460+1514-54=42920       54  <br>  解释：  <br>  23:B接收到A发来的seq=40000,ack=70000,size=1514的数据包  <br>  24:于是B向A也发一个数据包，告诉B，你的上个包我收到了。B的seq就以它收到的数据包的ACK填充，ACK是它收到的数据包的SEQ加上数据包的大小(不包括以太网协议头，IP头，TCP头)，以证实B发过来的数据全收到了。  <br>  25:A在收到B发过来的ack为41460的数据包时，一看到41460，正好是它的上个数据包的seq加上包的大小，就明白，上次发送的数据包已安全到达。于是它再发一个数据包给B。这个正在发送的数据包的seq也以它收到的数据包的ACK填充，ACK就以它收到的数据包的seq(70000)加上包的size(54)填充,即ack=70000+54-54(全是头长，没数据项)。  <br>  26：一样的啊   <img src ="http://www.blogjava.net/sunxiaobo/aggbug/233420.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sunxiaobo/" target="_blank">Xiaobo Sun</a> 2008-10-09 19:35 <a href="http://www.blogjava.net/sunxiaobo/archive/2008/10/09/220702.html#233420#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: # ps -aux |grep sysprocess</title><link>http://www.blogjava.net/sunxiaobo/archive/2008/07/28/179638.html#218141</link><dc:creator>Xiaobo Sun</dc:creator><author>Xiaobo Sun</author><pubDate>Mon, 28 Jul 2008 10:09:00 GMT</pubDate><guid>http://www.blogjava.net/sunxiaobo/archive/2008/07/28/179638.html#218141</guid><description><![CDATA[ps a 显示现行终端机下的所有程序，包括其他用户的程序。<br>　　　　2）ps -A 显示所有程序。<br>　　　　3）ps c 列出程序时，显示每个程序真正的指令名称，而不包含路径，参数或常驻服务的标示。<br>　　　　4）ps -e 此参数的效果和指定&quot;A&quot;参数相同。<br>　　　　5）ps e 列出程序时，显示每个程序所使用的环境变量。<br>　　　　6）ps f 用ASCII字符显示树状结构，表达程序间的相互关系。<br>　　　　7）ps -H 显示树状结构，表示程序间的相互关系。<br>　　　　8）ps -N 显示所有的程序，除了执行ps指令终端机下的程序之外。<br>　　　　9）ps s 采用程序信号的格式显示程序状况。<br>　　　　10）ps S 列出程序时，包括已中断的子程序资料。<br>　　　　11）ps -t 　指定终端机编号，并列出属于该终端机的程序的状况。<br>　　　　12）ps u 　以用户为主的格式来显示程序状况。<br>　　　　13）ps x 　显示所有程序，不以终端机来区分。<br>　　最常用的方法是ps -aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。<img src ="http://www.blogjava.net/sunxiaobo/aggbug/218141.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sunxiaobo/" target="_blank">Xiaobo Sun</a> 2008-07-28 18:09 <a href="http://www.blogjava.net/sunxiaobo/archive/2008/07/28/179638.html#218141#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>