这个是接收端
package Datagram;
import MyUtil.MyDatagramSocket;
import java.net.*;
import java.io.*;public class DatagramReceiver {
static final int MAX_LEN =100;
public static void main(String[] args){
if(args.length!=1){
System.out.println("Error");
}else{
try {
int port = Integer.valueOf(args[0]);
byte[] buffer = new byte[MAX_LEN];
DatagramSocket receiver = new DatagramSocket();
DatagramPacket packet = new DatagramPacket(buffer,buffer.length);
receiver.receive(packet);
String message = new String(buffer);
System.out.println(message);
receiver.close();
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch(IOException e){
}
}
}}
这个是发送端package Datagram;
import MyUtil.MyDatagramSocket;
import java.net.*;
import java.io.*;public class DatagramSender {
public static void main(String[] args){
// MyDatagramSocket receive = new MyDatagramSocket();
if(args.length !=3){
System.out.println("This program requires three command line arguments!");
}
else{
try {
InetAddress receiverHost = InetAddress.getByName(args[0]);
int receiverPort = Integer.valueOf(args[1]);
String message = args[2];
System.out.println("Host:"+receiverHost);
System.out.println("Message"+message);
DatagramSocket mySocket = new DatagramSocket();
byte[] buffer = message.getBytes();
DatagramPacket myPacket = new DatagramPacket(buffer,buffer.length,receiverHost,receiverPort);
mySocket.send(myPacket);
mySocket.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch(SocketException e){
}catch(IOException e){
}
}
}}
命令行里编译后,运行
java Datagram.DatagramReceiver 7676
java Datagram.DatagramSender localhost 7676 Hi!
然后发送端就顺利执行退出,但是接收端没有显示,一直等待!
请问这是怎么回事啊?
谢谢啦~~
package Datagram;
import MyUtil.MyDatagramSocket;
import java.net.*;
import java.io.*;public class DatagramReceiver {
static final int MAX_LEN =100;
public static void main(String[] args){
if(args.length!=1){
System.out.println("Error");
}else{
try {
int port = Integer.valueOf(args[0]);
byte[] buffer = new byte[MAX_LEN];
DatagramSocket receiver = new DatagramSocket();
DatagramPacket packet = new DatagramPacket(buffer,buffer.length);
receiver.receive(packet);
String message = new String(buffer);
System.out.println(message);
receiver.close();
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch(IOException e){
}
}
}}
这个是发送端package Datagram;
import MyUtil.MyDatagramSocket;
import java.net.*;
import java.io.*;public class DatagramSender {
public static void main(String[] args){
// MyDatagramSocket receive = new MyDatagramSocket();
if(args.length !=3){
System.out.println("This program requires three command line arguments!");
}
else{
try {
InetAddress receiverHost = InetAddress.getByName(args[0]);
int receiverPort = Integer.valueOf(args[1]);
String message = args[2];
System.out.println("Host:"+receiverHost);
System.out.println("Message"+message);
DatagramSocket mySocket = new DatagramSocket();
byte[] buffer = message.getBytes();
DatagramPacket myPacket = new DatagramPacket(buffer,buffer.length,receiverHost,receiverPort);
mySocket.send(myPacket);
mySocket.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch(SocketException e){
}catch(IOException e){
}
}
}}
命令行里编译后,运行
java Datagram.DatagramReceiver 7676
java Datagram.DatagramSender localhost 7676 Hi!
然后发送端就顺利执行退出,但是接收端没有显示,一直等待!
请问这是怎么回事啊?
谢谢啦~~
解决方案 »
- 初学者:构造方法中用this.x和直接用x有何区别.
- 如何改变鼠标的图形?
- 面试题: 给一个任意字符串例如:"xy5dew_dp6n",如果是数字的话,后面的字符循环数字次,如果是"_",用"@"替换,最终结果是"xy5dddddew@dp6nnnnnn"
- 我照JSF写的入门程序,但是报错说找不着Face Servlet实例。
- 关于swt的GUI线程
- 关于数据库开发的简单小问题(在线等)
- 表,sql,数据类型?
- 请朋友们给与协助?XP支持JDK1.2吗?Win2000下面我的JDK编译器为什么不能用?
- RMI服务端和客户端在同一太机器上成功,在不同的机器上不成功
- 考SCJP,哪本书好呀?
- 快速排序 出现地址越界异常 源代码如下: 请高手帮我修改下
- 三子棋!!有点问题啊
将行 DatagramSocket receiver = new DatagramSocket();
改成
DatagramSocket receiver = new DatagramSocket(port);
就好了。