免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1842 | 回复: 5
打印 上一主题 下一主题

Fedora10 可以发出消息,却不能收到消息,不知为什么 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-22 17:59 |只看该作者 |倒序浏览
我学习linux网络编程,看的书是《UNIX网络编程》第三版。
我有两天电脑,地址分别是192.168.1.101和192.168.1.102.
每台电脑自己给自己发消息都可以成功收到,但是给另一台发就不成功。
我重启进入windows,还用这个程序,则互相通信可以成功。
我用一个linux和一个windows,结果linux可以发出去,却收不到消息,不知道为什么,请求大家帮助。小弟不胜感激。
下面是程序(Java):
发送方:
iimport java.io.IOException;
import java.net.*;
public class UdpSendOut {
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                try {
                        DatagramSocket ds = new DatagramSocket();
                        String str = "hello  you world";
                        DatagramPacket dp = new DatagramPacket(str.getBytes(),str.length(),
                                InetAddress.getByName("192.168.1.101"),3000);
                        ds.send(dp);
                        ds.close();
                        } catch (SocketException e) {
                                                // TODO Auto-generated catch block
                                                e.printStackTrace();
                        } catch (UnknownHostException e) {
                                                // TODO Auto-generated catch block
                                                e.printStackTrace();
                        } catch (IOException e) {
                                                // TODO Auto-generated catch block
                                                e.printStackTrace();
                        }
        }
}
接收方:
import java.io.IOException;
import java.net.*;

public class UdpRecv {
                public static void main(String[] args) {
                DatagramSocket ds;
                try {
                        ds = new DatagramSocket(3000);
                        byte [] buf = new byte[1024];
                        DatagramPacket dp = new DatagramPacket(buf,1024);
                        ds.receive(dp);
                        String strRecv = new String (dp.getData(),0,dp.getLength())+" from "+
                                dp.getAddress().getHostAddress()+":"+dp.getPort());
                        System.out.println(strRecv);
                        ds.close();
                } catch (SocketException e) {
                        // TODO Auto-generated catch block
                                e.printStackTrace();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
        }
}

论坛徽章:
0
2 [报告]
发表于 2009-01-22 22:28 |只看该作者

回复 #1 hongyueer 的帖子

是否出现了空指针的警告信息

论坛徽章:
0
3 [报告]
发表于 2009-01-23 02:07 |只看该作者
java没用过,看样子是没能打开网卡。
可以抓包看看,应该没有发出来。
难道是权限问题?

论坛徽章:
0
4 [报告]
发表于 2009-01-23 14:12 |只看该作者

回复 #3 emmoblin 的帖子

谢谢你们的关注,我抓包看了,发送端是发出了,接收端也受到了,但就是“admin prohibition”,我猜测是权限的问题,但该怎么处理,才能通信,我就不知道了,还请大家指点。谢谢。

[ 本帖最后由 hongyueer 于 2009-1-23 14:22 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2009-01-23 14:21 |只看该作者

回复 #1 hongyueer 的帖子

没有空指针错误。

论坛徽章:
0
6 [报告]
发表于 2009-01-24 16:07 |只看该作者

回复 #1 hongyueer 的帖子

这个的原因是因为防火墙拒绝了,只需要在设置中取消防火墙即可。具体方法是在命令行中执行setup。该问题已于今天下午解决,谢谢大家的关注。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP