linux下组播遇到的问题及解决办法3.docx

上传人:b****6 文档编号:8798895 上传时间:2023-02-01 格式:DOCX 页数:59 大小:98.94KB
下载 相关 举报
linux下组播遇到的问题及解决办法3.docx_第1页
第1页 / 共59页
linux下组播遇到的问题及解决办法3.docx_第2页
第2页 / 共59页
linux下组播遇到的问题及解决办法3.docx_第3页
第3页 / 共59页
linux下组播遇到的问题及解决办法3.docx_第4页
第4页 / 共59页
linux下组播遇到的问题及解决办法3.docx_第5页
第5页 / 共59页
点击查看更多>>
下载资源
资源描述

linux下组播遇到的问题及解决办法3.docx

《linux下组播遇到的问题及解决办法3.docx》由会员分享,可在线阅读,更多相关《linux下组播遇到的问题及解决办法3.docx(59页珍藏版)》请在冰豆网上搜索。

linux下组播遇到的问题及解决办法3.docx

linux下组播遇到的问题及解决办法3

Win7访问samba很慢

Vista、Win7中,网络共享访问时,打开一个共享文件夹,有时地址栏中都会出现进度条,打开速度超级慢。

慢的主要原因是由于Vista、Win7中多了一个叫做“远程拆分压缩(RemoteDifferentialCompression)”的的机制,这个机制能够减少网络文件传输数据量,提高文件下载速度,但会大大降低共享访问的速度。

何为“远程拆分压缩(RDC)”

远程拆分压缩(RemoteDifferentialCompression)在有效的管理下允许程序在两个不同的计算机之间同步数据。

一个RDC程序可以通过网络,用最小的数据参数量在两台或者更多的计算机之间同步数据。

RDC是为C/C++开发者设计的。

COM和客户/服务器架构知识是必要的。

RDC包含在WindowsServer2003R2和其后的系统中。

关闭远程拆分压缩

打开“控制面板(经典模式下)”-->“程序和功能”-->“打开或关闭Windows功能”,在弹出的对话框中去除“远程拆分压缩”前面的CheckBox勾选,点击确定。

date-s”命令来修改系统日期如2005年7月26日

  

  #date-s07/26/2005

  

  将系统时间设定成下午11点12分0秒的命令如下。

  

  #date-s11:

12:

00

LINUXsocket在connect的时候发生Operationnowinprogress错误

unsignedlongul=1;

ioctl(nSocket,FIONBIO,&ul);//设置为非阻塞模式

放到connect()后面.

QTCreatorWINSOCKETundefinedreferenceto…的错误的处理

undefinedreferenceto`bind@12′

undefinedreferenceto`listen@8′

undefinedreferenceto`accept@12′

undefinedreferenceto`recv@16′

undefinedreferenceto`send@16′

undefinedreferenceto`shutdown@8′

undefinedreferenceto`closesocket@4′

解决办法:

在pro文件中添加:

LIBS+=-lwsock32

linux下组播遇到的问题及解决办法

2009-12-1816:

21185人阅读评论(0)收藏举报

1,查看系统是否支持多播:

ifconfig出现UPBROADCASTRUNNINGMULTICASTMTU:

1500Metric

2,出现:

“setsockopt:

Nosuchdevice”。

的提示,说明多播IP设置出现问题,系统所需要的uint32_t格式的网络地址的开头不是1110,检验通不过。

解决办法:

在把地址字符串"*.*.*.*"转化为uint32_t时采用htonl(inet_network(“*.*.*.*”))或者inet_aton函数,inet_aton(GRUPO,&srv.sin_addr)。

3,如果发送多播包的主机没有设置网关,会出现“networkisunreachable.这点很重要,网关可以随便设置,但是一定要设。

还要添加路由240.0.0.0。

即:

routeadd-net224.0.0.0netmask240.0.0.0deveth0

routeadddefaultgw"192.168.40.1"deveth0

NFS文件无法写入的权限问题

今天在机器上配置NFS文件系统,在/etc/exports中加入以下信息:

   /testfs10.0.0.0/8(rw)

   重启NFS服务以后,在客户机通过mount-orw-tnfs10.214.54.29:

/testfs/rd1命令将网络文件mount到本地。

执行完成之后,目录是可以访问了,但无法写入。

感觉有点奇怪,明明在命令中指定可以写入了。

于是到网上搜索资料,发现exports目录权限中,有这么一个参数no_root_squash。

其作用是:

登入NFS主机使用分享目录的使用者,如果是root的话,那么对于这个分享的目录来说,他就具有root的权限!

默认情况使用的是相反参数root_squash:

在登入NFS主机使用分享之目录的使用者如果是root时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的UID与GID都会变成nobody那个身份。

   因为我的客户端是使用root登录的,自然权限被压缩为nobody了,难怪无法写入。

将配置信息改为:

   /testfs10.0.0.0/8(rw,no_root_squash)

   据说有点不安全,但问题是解决了。

 

   另外,在测试NFS文件系统时,会经常mount和umount文件,但有时会出现deviceisbusy的错误提示。

你肯定感到很奇怪,我明明没有使用啊,看看你当前所在的目录,是不是在mount的文件目录中?

回退到上层目录重新umount,是不是OK了?

Linux程序开机自动运行

1.自动运行的程序有以下分类(作者:

李杨明):

/etc/rc.local最后加入你的运行程序这是开机启动 

/etc/bash_profile登陆启动 

.bashrc登陆后启动

博客:

2.作为工业自动化程序,当然要求在有工业供电的情况下就自动运行程序,因此我们选择:

开机启动方案.具体方法如下:

编辑一下这个文件/etc/rc.local,即vi/etc/rc.local,把你已经在系统里安装好的程序,加在这个文件里就可以了!

3.举例如下:

现在我在/var/ftp/up/server程序要开机自动运行,执行vi/etc/rc.local命令后,在vi打开的文件末尾加入

/var/ftp/up/server就可以实现开机自动运行的目的!

即使用户没有登陆linux系统,该程序也仍然运行着.

SVN服务启动

命令svnserve–d–r/home/pub/svn

SVN命令增加文件

命令svnadd*会忽略所有已经在版本控制之下的目录,有时候,你会希望添加所有工作拷贝的未版本化文件,包括那些隐藏在深处的文件,可以使用svnadd的--force递归到版本化的目录下:

$svnadd*--force

Linux操作系统下三种配置环境变量的方法

现在使用linux的朋友越来越多了,在linux下做开发首先就是需要配置环境变量,下面以配置java环境变量为例介绍三种配置环境变量的方法。

 

1.修改/etc/profile文件

如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。

 

(1)用文本编辑器打开/etc/profile

 

(2)在profile文件末尾加入:

如何查看一个可执行程序链接使用了哪里动态库

例如查看exec链接了那些可执行程序。

ldd$(whichexec)

电脑主机IP为192.168.0.1设备IP地址为192.168.1.1,两者之间如何连通。

方法:

给物理网卡添加一个192.168.1.*的IP地址。

linux下如何设置IP地址并激活

Linux系统下如何设置IP地址?

我们可以通过命令设定IP的方法,不过此方法的前提条件是用户需root权限。

在Linux系统的/etc/sysconfig/network-script/ifcfg-eth0文件中存放着网卡IP地址配置的相关信息,它的具体格式为:

  [root@localhostnetwork-scripts]#catifcfg-eth0

  DEVICE=eth0

  BOOTPROTO=none

  ONBOOT=yes

  TYPE=Ethernet

  NETMASK=255.255.255.0

  IPADDR=IP地址

  USERCTL=no

  PEERDNS=yes

  GATEWAY=网关地址(路由器的IP地址)

  下面我们来举个例子如何实现Linux环境下设置IP地址。

  #ifconfigeth0192.168.0.1或者修改/etc/sysconfig/network-scripts/下的ifcfg-eth0

  #vi/etc/syssconfig/network-scripts/ifcfg-eth0

  DEVICE=eth0

  BOOTPROTO=static

  HWADDR=;这里是你网卡的物理地址,通常检测到的网卡你就不用输入了

  ONBOOT=yes

  IPADDR=192.168.0.1

  NETMASK=255.255.255.0

  NETWORK=192.168.1.0

  BROADCAST=192.168.1.255

  GATEWAY=;这里输入你的网关,路由器的IP地址

  保存退出

  #/sbin/servicenetworkrestart

  如果网卡启动是OK的话就说明IP地址设定成功了。

另外我们可以用ifconfigeth0来显示当前的IP来确认是否设置正确。

  利用以下命令:

  /etc/init.d/networkreload命令或servicenetwork[命令]

  重新导入该文件,实现网络启动。

centos系统错误处理Giverootpasswordformaintenance

处理流程:

第一步:

输入正确的root用户密码(输入正确的系统密码后,系统自动进入控制后台)

第二步:

在控制台输入命令fsck-y回车

系统自动检测,问题解决

分析:

这个错误出现的原因是机器突然断电,导致系统文件受损.

在linux下添加DNS服务器地址

早上来到公司发现机子怎么关了,问了一下IT,原来是公司早上停了一会儿的电。

打开机子以后发现launchmail登不上去,于是想用网页方式登到服务器上去,可发现也登不上,试了一下其他网页,都打不开。

看了一下网络配置原来是DNS没设。

记得上回已经设上了,不知道断电重启后怎么就没了呢。

于是叫来IT帮我把DNS重设回去(因为记不住DNS的ip地址:

))

1.  首先查看下/etc/resovl.conf的内容 

#cat/etc/resolv.conf

发现是个空文件。

2.  重启网络服务

#servicenetworkrestart 

3. 再查看/etc/resolv.conf,若还没有DNS地址则手动添加

 #vi/etc/resolv.conf

nameserver172.17.192.21   #==>此地址就是添加的DNS地址

完成后一切ok!

网页邮箱都可访问!

Smb开机自动运行

fedora已经安装了smbd,则存在/etc/init.d/smb文件,你用命令chkconfig--level35smbon

开发板ftp下载文件命令

ftpget–uusername192.168.*.*remotefilelocalfile

remotefile位于服务器用户名username下的指定目录下

虚拟机如何修改mac地址

首先止虚拟机网格连接

Servicenetworkstop

ifconfigeth0hwether00:

11:

22:

33:

44:

55

Servicenetworkstart

VIM插件的安装路径。

~/.vim

~/.vimrcvim配置文件。

虚拟机如何添加硬盘

1vmware增加硬盘,vm->setting->HardDisk点击add增加一个新的硬盘。

注意:

此时vmware是已导入操作系统文件,同时操作系统没有运行起来

2运行操作系统(linux),后格式化硬盘,并mount硬盘到一个指定目录/home/pub

2.1Root用户权限下,执行fdisk–l命令查看硬盘设备文件

2.2注意到新增的一个硬盘设备文件/dev/hdb

2.3格式化硬盘mkfs.ext3 /dev/hdb

2.4mount硬盘mount–text3/dev/hdb/home/pub

每次虚拟机开机都得进行mount硬盘的操作,很是麻烦,有简单的解决方法。

$sudovim/etc/fstab

加入下面的内容

/dev/hdb/home/pub ext3 defaults12

开机后自动启动samba服务

1、可以在SETUP里选中SMB

2、在命令行里运行“chkconfig--level5smbon”

3、在ETC/rc.d/rc.5/local.rc里增加一个servicesmbstart

ln建立链接

ln–s源文件(源目录)目的文件(目的目录)

undefinedreferenceto`fvp_get_relative_time'

gcc编绎时出错提示undefinedreferenceto`fvp_get_relative_time'

原因:

没有定义函数fvp_get_relative_time的实现。

SourceInsight 添加新的文件类型 

1 打开Options->Document Options 

2 File filter:

 添加*.s

*.s代表新的文件类型后缀。

内网IPCamera外网访问的方法。

1路由器能够进行外网访问,填写ddns帐号与密码

2路由器进行端口映射,ipcamera的web端口与数据传输端口均要进行端口映射。

implicitdeclarationoffunction错误的解决方法。

用gcc编译c程序的时候经常会出现

implicitdeclarationoffunction'...'的warning

偶经过这几天的经验,发现主要有2种情况会产生这种warning

1  没有把函数所在的c文件生成.o目标文件

2  在函数所在的c文件中定义了,但是没有在与之相关联的.h文件中声明

调用ioctl函数没有加头文件#include,居然报语法错误。

2011-5-10

Linux下打包目录命令

tarcvftemp.tar/tempdir

嵌入式查看当前动态库链接目录,增加动态库链接目录

echo$LD_LIBRARY_PATH

LD_LIBRARY_PATH增加链接目录,如下我们增加新的动态库目录/home/install/ffmpeg/lib

exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:

/home/install/ffmpeg/lib

海思芯片硬解码可以接受的两种码流方式。

海思 3515 芯片配置解码时,送解码器的数据有两种形式,一种是以码流的形式,一种是以帧数据的形式,海思的demo程序中,解压demo就是以码流数据的形式送解码器的,

而在前公司,我们以帧数据形式送解码器。

//stH264Attr.enMode=H264D_MODE_FRAME;

stH264Attr.enMode=H264D_MODE_STREAM;

太过份了,在调用ioctl函数时, 没有加头文件 #include 居然提示我语法错误。

一个导致主程序不断的挂掉的函数。

msg_dbg("func(%s),u32Len(%d)\n",stStream.u32Len);

2011-4-21

VMware虚拟机出现Reason:

Failedtolockthefile

打开VMware出现Cannotopenthedisk*.vmdkoroneofthesnapshotdisksitdependson.Reason:

Failedtolockthefile.错误的解决办法!

  今天我公司做的虚拟化服务器出现故障意外重启了,主系统启动之后,在启动VMware虚拟机的时候出现了Cannotopenthedisk'*.vmdk'oroneofthesnapshotdisksitdependson.Reason:

Failedtolockthefile.的错误,一个虚拟机无法启动将影响到很多用户的使用,所以我马上开始寻找解决Reason:

Failedtolockthefile的办法!

于是我到XX搜索了一下这个错误的具体原因,搜索结果中给出了两种解决办法!

解决办法一:

  1、在VMware该虚拟机路径下的所有.lck文件和文件夹下删除或迁移至其它目录,一般就可以解决了。

  2、如果再次启动VMware的WindowsVista系统失败,尝试右键虚拟机出错的系统->Settings->Hardware->HardDisk->Utilities->Map->映射虚拟硬盘到Z:

\

  3、断开虚拟硬盘,重新加载,启动。

系统就可以正常启动了

经实验此办法以失败结束。

如果有遇到Cannotopenthedisk'*.vmdk'oroneofthesnapshotdisksitdependson.Reason:

Failedtolockthefile错误的朋友不妨也试一下。

如果您实验成功了,请给我们留言,以便我们进行更好的技术交流

解决办法二:

  使用记事本打开*.VMX文件上加上一行代码disk.locking="FALSE",重新启动该虚拟机。

使用方法二,问题得到解决,重新启动VMware正常启动,不会再出现Cannotopenthedisk'*.vmdk'oroneofthesnapshotdisksitdependson.Reason:

Failedtolockthefile.错误。

希望各位从事虚拟化的朋友能有所帮助,也欢迎各位来我站踊跃投稿!

感谢作者的分享,偶使用方法1第1步就解决了

 

问题出现的原因:

虚拟磁盘(.vmdk)本身有一个磁盘保护机制,为了防止多台虚拟机同时访问同一个虚拟磁盘(.vmdk)带来的数据丢失和性能削减方面的隐患,每次启动虚拟机的时候虚拟机会使用扩展名为.lck(磁盘锁)文件对虚拟磁盘(.vmdk)进行锁定保护。

当虚拟机关闭时.lck(磁盘锁)文件自动删除。

但是可能由于您非正常关闭虚拟机,这时虚拟机还没来得及删除您系统上的.lck(磁盘锁)文件,所以当下次您启动虚拟机的时候出现了上述错误

2011-4-11

一个内存错误。

代码如下。

#defineDECL_PRIV(thiz,priv)PrivInfo*priv=thiz!

=NULL?

(PrivInfo*)thiz->priv:

NULL

struct_Access

{

AccessSeekseek;

AccessBlockblock;

AccessReadread;

AccessControlcontrol;

AccessDestroydestroy;

charpriv[0];

};

DECL_PRIV(thiz,priv);

priv=(PrivInfo*)COMM_ZALLOC(sizeof(PrivInfo));

priv为一局部变量,当函数退出时,该局部变量会回收。

结构体thiz->priv指向地址为非法地址,

正确的做法,当thiz进行分配内存时,同时分配额外的内存。

Access*thiz=(Access*)COMM_ZALLOC(sizeof(Access)+sizeof(PrivInfo));

回收内存时

COMM_ZFREE(thiz,sizeof(*thiz)+ sizeof(PrivInfo));

编绎时出现此提示错误,warning:

assignmentmakespointerfromintegerwithoutacast

原因分析,没有包含函数声明的头文件。

2011-4-8

使用va_list时应包含的头文件#include

头文件里一个函数定义忘记写分号,导致的BUG.

2011-3-23

今天遇到的一个问题,头文件里一个函数结尾处忘记写分号,调试时总是出现如下bug提示。

error:

syntaxerrorbefore'{'token

C语言宏定义##连接符和#符的使用

C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。

下面对常遇到的宏的使用问题做了简单总结。

关于#和##

在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。

比如下面代码中的宏:

#defineWARN_IF(EXP)   do{if(EXP)   fprintf(stderr,"Warning:

"#EXP"\n");}  while(0)

那么实际使用中会出现下面所示的替换过程:

WARN_IF(divider==0);

被替换为

do{

if(divider==0)

fprintf(stderr,"Warning""divider==0""\n");

}while(0);

这样每次divider(除数)为0的时候便会在标准错误流上输出一个提示信息。

而##被称为连接符(concatenator),用来将两个Token连接为一个Token。

注意这里连接的对象是Token就行,而不一定是宏的变量。

比如你要做一个菜单项命令名和函数指针组成的结构体的数组,并且希望在函数名和菜单项命令名之间有直观的、名字上的关系。

那么下面的代码就非常实用:

structcommand

{

char*name;

void(*function)(void);

};

#defineCOMMAND(NAME){NAME,NAME##_command}

//然后你就用一些预先定义好的命令来方便的初始化一个command结构的数组了:

structcommandcommands[]={

COMMAND(quit),

COMMAND(help),

...

}

COMMAND宏在这里充当一个代码生成器的作用,这样可以在一定程度上减少代码密度,间接地也可以减少不留心所造成的错误。

我们还可以n个##符号连接n+1个Token,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电力水利

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1