获取本地IP地址遇到的问题

彼得·蟲 发表于 2009-01-02 15:35:57

本来获取客户端所在的IP地址部分的代码一直都运行的正常
今天拿出来调试的时候,发现获取到的本地IP居然是0.1.0.6!!

ipconfig得到的本地连接中

Ethernet adapter 本地连接 2:

        Connection-specific DNS Suffix  . :
        IP Address. . . . . . . . . . . . : 192.168.1.33
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 192.168.1.2

Ethernet adapter 本地连接 3:

Connection-specific DNS Suffix . :
Autoconfiguration IP Address. . . : 0.1.0.6 S
ubnet Mask . . . . . . . . . . . : 255.255.255.255
Default Gateway . . . . . . . . . : 


不知道哪里出来的本地连接3.

重启后,这个本地连接3就没有了,客户端获取的本地iP也没问题了。。。
@_@

不会是中毒了吧?!

收藏: QQ书签 del.icio.us 订阅: Google 抓虾

什么是CDATA

彼得·蟲 发表于 2008-12-04 10:58:36

师姐昨天问了我什么是CDATA,我就记得XML解析器在解析带有CDATA内容的东西的时候会自动跳过。
到网上一查,嘿,还真的是。
咳咳咳,正经的说一下吧。

CDATA的格式通常是<![CDATA["标记开始,以"]]>结束
用来表示按照原来的方式显示的文本。通常会被用在有“<”“>”的文本里面

XML解析器在对XML文档进行解析的时候,会解析XML文档中的所有文本,也就是两个标签之间的文本也会被解析:
<age>22</age> 
这个22也会被解析。

XML的解析这么做的原因是因为XML元素里面还能包含其他的元素:
<people><age>22</age></people>

解析器就会把它解析成
<people>
     <age>22</age>
</people>
树图形式

在XML的文档中如果放置了类似“<”的字符,那么这个文档就会出错,这是因为解析器会认为这是新元素的开始,因而
<age>if age<23</age>
的写法就是错误的

为避免这个错误,需要把字符“<”替换为实体引用
<age>if age &lt; 23</age>

其中:“&lt;”是XML的预定义实体应用

不如使用CDATA吧!
可如果这个文本包含了很多“<”和“&”字符时,那么就可以把这个XML元素定义为一个CDATA的部分。(定义那么多的实体引用多麻烦啊)
<script>
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
   {
   return 1
   }
else
   {
   return 0
   }
}
]]>
</script>

上面的例子中,在CDATA区段中的所有东西都会被解析器忽略了。

关于CDATA区段的注释:
CDATA区段不能包含字符串"]]>",所以,CDATA区段的嵌入是不被允许的。
同时也需要确保在"]]>"字符串中没有空格或折行。

关键词(Tag): xml cdata
收藏: QQ书签 del.icio.us 订阅: Google 抓虾

服务器为客户端自动分配端口的一个解决办法

彼得·蟲 发表于 2008-11-04 17:15:01

考虑过服务器要怎么实现跟客户端的通信,有两种办法
都是从服务器的监听状态开始
方法一:为每个客户端创建一个单独的连接进行同步,这需要为每个不同的客户端的连接绑定一个端口直到同步完成
方法二:服务器仍然使用监听端口接收来自客户端的同步数据,这个要很多状态转移,太复杂,看,我连描述都不知怎么描述,需要画图说明,俺就不画了

所以决定使用方法一。

那么接下去寻找为客户端使用一个没有用过的端口进行通信
怎么知道端口有没有被用呢???
我采用随机数生成的办法,生成了2000~6000之间的随机数作为端口号
然后创建一个socket连接,bind这个端口号
如果bind不成功(说明这个端口被占用了),那么就将端口号加1,直到bind成功为止
然后关闭掉这个socket连接
就得到了一个没有用过的端口号了。

嗯。。。。还不敢贴代码上来。。。。。。就提供一个解决的办法吧。。。嗯。

收藏: QQ书签 del.icio.us 订阅: Google 抓虾

error while loading shared libraries 解决办法

彼得·蟲 发表于 2008-10-20 22:22:02

error while loading shared libraries: xxx.so.0:cannot open shared object file: No such file or directory

表示程序找不到xxx.so在什么地方

解决的办法:
现运行 vim /etc/ld.so.conf,你可以看到 include /etc/ld.so.conf.d/*.conf 出现
也就是系统要从*.conf里面出现的路径中找寻xxx.so的录路径了,如果你的xxx.so是自己生成的,那么就安接下来两个不走来完成吧。
1. 在/etc/ld.so.conf/ 下新建一个XXXX.conf的文件,将你这个xxx.so的文件绝对路径放在这个文件里面,比如 /home/zyb/workspace/SyncServer/lib 然后保存
2.
执行 /sbin/ldconfig –v  使更改生效

在运行程序,就OK拉。
如果xxxx.so不是自己声称的,也是一样道理,找到所在的路径,新建 xxxxx.conf,加入/etc/ld.so.conf在运行第二步使更改生效就可以了。
关键词(Tag): linux 共享库
收藏: QQ书签 del.icio.us 订阅: Google 抓虾

娃哈哈,在这里记学习笔记吧

彼得·蟲 发表于 2008-10-20 22:20:13

peter@work...虽然域名有点长,我自愿的。
遇见的问题太多,我觉得还是必须造福人类才好。
好,开始咯~~
关键词(Tag): 开博
收藏: QQ书签 del.icio.us 订阅: Google 抓虾