不知道ip,如何广播.(100分)

  • 主题发起人 主题发起人 failureman
  • 开始时间 开始时间
F

failureman

Unregistered / Unconfirmed
GUEST, unregistred user!
我用udp协议进行收发时,发送一方必须知道接收方ip,是否可以
一个广播式信息发出(不用知道ip),然后每个计算机收到信息后
响应,如果不行,其它协议或控件呢?clientsocket与serversocket
不行,因为连通前,客户必须联通才能进行.那些攻击win98的软件是
如何作的呢?
 
发到广播地址或者组播地址。
 
发送到广播地址:比如:192.168.18.255
mask:255.255.255.0
delphi5 fastnet udpdemo 就可以演示。
 
请介绍一下广播地址与组播地址的概念。
是否指网关和子网掩码?
 
to 三代坦克:我知道局域网址为: 192.168.***.***的广播地址是192.168.168.255,但是
如果不是这种类型的IP呢?如0打头的,它的广播地址还是不是最后三位为255就行了?
 
IP地址全0为全网广播,将网络地址加255为对应网络的广播。
 
my ip:14.65.20.181,mask:255.255.240.0
use 14.65.20.255 not ok!help!!!!!!!!!
 
据说你的局域网属于A类网,你的广播地址应该是:14.255.255.255,你试试看,我没试过。
 
我觉得子网络号可能是14.65.4
如果教父的不行就试试14.65.4.255
 
可视化程序设计入门之乱谈控件
很多以前做DOS程序设计的朋友,刚转到Windows下可视化程序设计时,会对“控件”这东西搞不清楚,觉得很神奇,随便把一个按钮拖到窗口就可以了,不用写一句代码就可以生成一个可执行文件(当然,这个程序只有一个窗口和一个按钮,什么也做不了)。编程变得就像搭积木一样简单。确实,可视化程序设计的出现,大大减轻了程序员的负担,以前搞一个程序,70%的时间用来写界面,30%的时间设计代码。现在则恰恰相反。可视化程序设计环境的出现,使程序员可以花更多时间来调试程序。当前比较流行的可视化程序语言有VB、DELPHI、VC等。严格来说,VB的控件才是真正的控件,VC的MFC类库是土生土长的SDK产物,而DELPHI吸收了VB和VC的精华,它的控件叫VCL组件。INPRISE(英博师,即以前的BORLANDE)的设计师称我们进入了“组件时代”。
要真正把控件说明白,就要从面向对象程序设计讲起,重点介绍类的封装、继承等等东西,下面我想避开这些概念,从另外一个角度来解释。正不正确请大家指正。要想真正了解控件的本质,请另行查找资料。希望本文不会误人子弟,则足已!
相信搞过程序设计的人都会有这样的经历:在一个程序中用过的代码,有时侯会在设计别的程序时用到,早期用机器语言时代,一般的做法是把这段代码记录下来,以后用到时就把它再敲一遍。高级语言的出现,使程序员可以设计自己的函数和过程,于是就变成了把常用的代码写成函数或过程,或子程序,如C语言中可以定义为自己的头函数。(顺便说一句,即使是现在,这个方法还有很多人用,把一些常用的函数和过程做成一个单元---当然,在DELPHI中也可以把它变成自己的控件)。
什么是函数?例如UDP协议中可以指定一个IP地址来进行通讯,也可以进行网络广播(即一次可以把信息发给同一个IP段)。我们知道,1~126.XXX.XXX.XXX (A类网)、128~191.XXX.XXX.XXX(B类网)、192~254.XXX.XXX.XXX(C类网)的广播地址分别为1~126.255.255.255 (A类网)、128~191.XXX.255.255(B类网)、192~254..XXX.XXX.255.(127开头的IP属于保留地址,如127.0.0.1是自己的地址)。比如说IP地址192.168.0.45属于C类网,那么它的广播地址就是192.168.0.255.又比如说IP地址125.161.0.45属于C类网,那么它的广播地址就是125.255.255.255.如果你经常要用到这个的话,这时候我们就可以写一个以下的函数:
Function Trun_ip(S:string):string;
var s1,s2,s3,ss,sss,Head:string;
n,m:integer;
begin
//s:=192.168.0.23
sss:=S;
n:=pos('.',s);
s1:=copy(s,1,n);//192.
m:=length(s1);
delete(s,1,m);

Head:=copy(s1,1,(length(s1)-1));

n:=pos('.',s);
s2:=copy(s,1,n);//168.
m:=length(s2);
delete(s,1,m);

n:=pos('.',s);
s3:=copy(s,1,n);//0.
m:=length(s3);
delete(s,1,m);

ss:=sss;//127.XXX.XXX.XXX
if strtoint(Head) in [1..126] then ss:=s1+'255.255.255'; //1~126.255.255.255 (A类网)
if strtoint(Head) in [128..191] then ss:=s1+s2+'255.255';//128~191.XXX.255.255(B类网)
if strtoint(Head) in [192..254] then ss:=s1+s2+s3+'255'; //192~254.XXX.XXX.255(C类网)

Result:=ss; ////192.168.0.255

end;
使用这个函数时只要把一个有效的IP地址送进去,就会返回该IP地址的广播地址。如Trun_ip(192.168.0.45)就会返回192.168.0.255.
有了上面的基础,我们再来设想一下:Windows下经常要用到窗口、按钮、菜单,如果也能做成一个函数,给出窗口的大小坐标等就得到(返回)一个相应的窗口,那就好了,于是,(在可视化程序设计出现之前)有人就把这个想法实现了---如C中的类库,可以看成是很多函数过程的集合,即另一种形式的函数。但这个做法有一个明显的缺点,就是无法在设计时刻看到相应的结果,必须把文件编译为可执行文件后,发现不够理想的地方回到代码中再修改。后来,面向对象的出现,类等新概念的出现,产生了升华,导致程序设计产生了质的飞跃,那个想法就变成了现在的控件,比如说VB、DELPHI中,在属性栏改变控件的属性(相当于把一个值给一个函数),就可以立刻看到相应的结果(函数返回的值),跟上面的IP地址转换函数一样,只不过控件是由很多子函数组成的。
当然,不能说控件就是函数,因为,以前的语言设计语言机制是面向过程的。(通俗来说,DOS程序像一条线(DOS操作系统除外),从第一条语句开始一直执行到最后一句,然后结束。如果中间有要求用户输入,则停顿一下,等待输入然后继续往下执行到结束,退出。而Windows下的程序更像一个圆,它采用消息驱动机制,程序运行后就处于等待状态,执行完语句后又返回等待状态,接收到退出的消息后才退出程序。消息驱动机制使同时执行多个程序变成可能,系统会自动在几个线程间调度。程序是静态的,线程才是活的。另外,Windows采用了虚拟机的概念(这也是很多汇编程序语言在Windows下运行不了的原因)....唉,离题了,Sorry......)要明白是怎么回事,还是请大家自己回去翻书吧。
说了半天,不知道大家明白了没有,我可是累死了。就先说到这里吧,下次再来乱谈一下。:)
最后附上我大一当学校计算机系简报主编时写的一编小东西,对知道什么是面向对象程序设计的了解可能有帮助。

 
大虾们:
  my ip:14.65.20.181,mask:255.255.240.0
掩码是255.255.240.0,广播地址当然不是14.65.20.255啦。
应该是:
把IP和mask转化为二进制。(1)mask是1的IP与原来的相同,(2)mask是0的IP是1。
(1)是网络地址;(2)才是你本机的地址。
 
不好意思上次算错了。
从ip地址第一字节看,它确实是A类网,A类网的后三个字节是主机地址.
但是由于掩码是255。255。240。0,所以可以确定它将网段分割成子网了,
而且是从主机地址中借了前12位用于子网地址。
将ip和mask转换成二进制,然后做与运算得到网络地址14.65.16.0
但是广播地址我有点模糊,可能是14.65.16.255或14.65.31.255
我只知道这么多了。
 
在写接收IP时最后一组为255,哪就是所有的本网络中的机器,即网络广播,
上面的帖子都已说的非常明白了,
你还有什么想问的?
没事的话,我们就等着发分了。
 
呵呵,你说得也太直接了吧,多不好意思。 :)
 
to 教父 and other :
推荐大家 看一本好书,《使用TCP/IP进行网络互联》 (1-3卷) purdue大学。
电子工业出版社 isbn 7-5053-4632-6/tp.2206
http://www.cs.purdue.edu/homes/comer/books.html
 
哇,我又感觉到大家庭的温暖了,我要回去试试,只是小弟分太少,不能很好报答大家了.
 
看来问题解决了,具体我地址来说,14.255.255.255,14.65.31.255是对的.谢谢大家.顺便问
一下,哪位高手知道如何取五笔输入法字根,打字训练软件字根训练部分是如何做的,我在
winapi类上提了这个问题,请帮忙好吗?
 
接受答案了,(14.65.31.255,14.255.255.255),感谢大家帮忙,顺便问一下,有哪位高手知道
五笔打字训练软件中字根练习部分是怎样做的吗,如何取字根,输入如何实现,这个问题在我
新提的问题中(winapi类)
 
现在到我不明白了,究竟(14.65.31.255,14.255.255.255)是什么意思???
 
14.255.255.255是整个A类网的广播地址,这样造成更大范围的广播风暴,
用14.65.31.255就行了,这是你所在子网的广播地址
 
后退
顶部