黑马程序员技术交流社区
标题:
为什么运行后没有结果
[打印本页]
作者:
张其辉
时间:
2012-10-28 21:29
标题:
为什么运行后没有结果
import java.net.*;
public class wlbc2 {
public static void main(String[] args) throws Exception
{
DatagramSocket ds=new DatagramSocket();
byte[] buf="udp ge men lai le".getBytes();
DatagramPacket dp=new DatagramPacket(buf,buf.length
,InetAddress.getByName("www.baidu.com"),10000);
ds.send(dp);
ds.close();
}
}
class jieShou
{
public static void main(String[] args) throws Exception
{
DatagramSocket ds=new DatagramSocket(10000);
byte[] buf=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf, buf.length);
ds.receive(dp);
String ip=dp.getAddress().getHostAddress();
String data=new String(dp.getData(),0,dp.getLength());
int port=dp.getPort();
System.out.println(ip+"::"+data+"::"+port);
ds.close();
}
}毕老师讲的23天09的传输协议,我用的是eclipse,为什么一运行什么都没有呢?接受和输出都没反应啊?
作者:
hello_world!
时间:
2012-10-28 21:42
public class wlbc2 {
public static void main(String[] args) throws Exception
{
DatagramSocket ds=new DatagramSocket();
byte[] buf="udp ge men lai le".getBytes();
DatagramPacket dp=new DatagramPacket(buf,buf.length
,InetAddress.getByName(
"www.baidu.com"
),10000);
ds.send(dp);
ds.close();
}
}
这段程序的意思是,你想
百度服务器
中的10000端口发送数据。
class jieShou
{
public static void main(String[] args) throws Exception
{
DatagramSocket ds=new DatagramSocket(10000);
byte[] buf=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf, buf.length);
ds.receive(dp);
String ip=dp.getAddress().getHostAddress();
String data=new String(dp.getData(),0,dp.getLength());
int port=dp.getPort();
System.out.println(ip+"::"+data+"::"+port);
ds.close();
}
}
现在的问题是,你把这段程序能放在百度的服务器上吗?所以你访问的服务器根本就不对。决绝问题的方法是,你把访问地址,改成你能访问的。比如这样:
DatagramPacket dp=new DatagramPacket(buf,buf.length ,InetAddress.getByName(
"127.0.0.1"
),10000);
作者:
周万谋
时间:
2012-10-28 21:42
DatagramPacket dp=new DatagramPacket(buf,buf.length
,InetAddress.getByName("www.baidu.com"),10000
);
这句代码有问题,这里是一个UDP发送端,参数InetAddress.getByName("
www.baidu.com
"),10000 意思分别是发送到哪和对应地址的端口。
你把数据数据发到百度去了,把地址该为自己电脑的IP或者localhost看看。
作者:
王梁星
时间:
2012-10-28 21:44
import java.net.*;
public class testSocket{
public static void main(String[] args) throws Exception
{
DatagramSocket ds=new DatagramSocket();
byte[] buf="udp ge men lai le".getBytes();
DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName("128.0.0.1"),10000);
ds.send(dp);
ds.close();
}
}
class jieShou
{
public static void main(String[] args) throws Exception
{
DatagramSocket ds=new DatagramSocket(10000);
byte[] buf=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf, buf.length);
ds.receive(dp);
String ip=dp.getAddress().getHostAddress();
String data=new String(dp.getData(),0,dp.getLength());
int port=dp.getPort();
System.out.println(ip+"::"+data+"::"+port);
ds.close();
}
}
复制代码
你把域名弄错了。因为服务端是你自己的电脑,所以域名或者IP地址应该写自己本地回环地址127.0.0.1。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2