查看: 1599|回复: 25
|
[Java]前辈请教导
[复制链接]
|
|
发表于 18-10-2006 06:49 PM
|
显示全部楼层
原帖由 伪君子 于 18-10-2006 05:46 PM 发表
我要做一个Assignment是关于MulticastSocket...
可是我完全没有Java底...
我Download了JavaNetBean...
可是我在网上找的SampleCode...
我又不知道如何Run...
我GroupMember突然要我做... 明天就要交了...
我 ...
java的socket programming应该不难。 不过。。
你完全没有java的底,然后要写socket programming,然后明天要交??
。。噢。。may god bless you.. |
|
|
|
|
|
|
|

楼主 |
发表于 18-10-2006 06:51 PM
|
显示全部楼层
被人摆上薹了...
不做不行...
可以教我吗?
我不想Fail这个Subject...
我有那个Idea去做...
不过不知道如何开始... =.=!!! |
|
|
|
|
|
|
|

楼主 |
发表于 18-10-2006 06:53 PM
|
显示全部楼层
其实只是一个简单的System...
用MultiSocket...
做一个Vote的系统...
厄... 明白吗?
只要可以Vote到就行了...
几简单也可以... 
[ 本帖最后由 伪君子 于 18-10-2006 06:54 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 18-10-2006 07:18 PM
|
显示全部楼层
那你要传播什么,只是vote又为何要multicast.. |
|
|
|
|
|
|
|

楼主 |
发表于 18-10-2006 07:48 PM
|
显示全部楼层
Assignment的重点是...
用MulticastSocket的Function来做投票...
就像当Client投票了给Server...
Server... MultiCastSocket投票结果给Client..
就像A是对还是错?
全部Client Send了给Server...
2个对... 3个错...
把答案MulticastSocket给Client...
恩... 明白吗??? |
|
|
|
|
|
|
|
发表于 18-10-2006 08:46 PM
|
显示全部楼层
原帖由 伪君子 于 18-10-2006 07:48 PM 发表
Assignment的重点是...
用MulticastSocket的Function来做投票...
就像当Client投票了给Server...
Server... MultiCastSocket投票结果给Client..
就像A是对还是错?
全部Client Send了给Server...
2个对 ...
明天要交。。。。
MIS |
|
|
|
|
|
|
|

楼主 |
发表于 18-10-2006 08:54 PM
|
显示全部楼层
其实我已经知道无法完成的...
只是想尽力我能力做多少就多少...
1分也是分.............. |
|
|
|
|
|
|
|

楼主 |
发表于 18-10-2006 11:26 PM
|
显示全部楼层
我有一个问题...
我在两个File...
Send.java...
Receive.java...
我要启动两个在同一时间...
我应该怎样??
我都把这两个File放在Assignment的Package里了...
可是... 里面只是Run一个...
Run Send.java...
就不RUN Receive.Java...
或者相反...
我用着JBuilder...
请前辈教导... |
|
|
|
|
|
|
|
发表于 18-10-2006 11:39 PM
|
显示全部楼层
先compile去.class 先好不好?
用javac 的command.. |
|
|
|
|
|
|
|

楼主 |
发表于 18-10-2006 11:56 PM
|
显示全部楼层
已经有.Class了...
这是mcsend...
package assignment;
import java.net.*; /* import networking package */
import java.io.*; /* import input/output package */
public class mcsend {
public static final int MIN_PORT = 1024; /* min network port */
public static final int MAX_PORT = 65535; /* max network port */
public static void main(String argv[]) {
InetAddress mcAddress=null; /* multicast address */
int mcPort=0; /* multicast port */
int ttl=1; /* time to live */
BufferedReader stdin; /* input from keyboard */
String sendString; /* string to be sent */
byte[] sendBytes; /* bytes to be sent */
/* validate number of arguments */
if (argv.length != 2) {
System.out.println("Usage: mcsend " +
"<Multicast IP> <Multicast Port>");
System.exit(1);
}
/* validate the multicast address argument */
try {
mcAddress = InetAddress.getByName(argv[0]);
} catch (UnknownHostException e) {
System.err.println(argv[0] + " is not a valid IP address");
System.exit(1);
}
/* validate address argument is a multicast IP */
if (! mcAddress.isMulticastAddress()) {
System.err.println(mcAddress.getHostAddress() +
" is not a multicast IP address.");
System.exit(1);
}
/* parse and validate port argument */
try {
mcPort = Integer.parseInt(argv[1]);
} catch (NumberFormatException nfe) {
System.err.println("Invalid port number (" + argv[1] + ")");
System.exit(1);
}
if ((mcPort < MIN_PORT) || (mcPort > MAX_PORT)) {
System.out.println("Invalid port number " + mcPort);
System.out.println("Port should be in range " + MIN_PORT
+ " to " + MAX_PORT);
System.exit(1);
}
try {
/* instantiate a MulticastSocket */
MulticastSocket sock = new MulticastSocket();
/* set the time to live */
sock.setTimeToLive(ttl); // Java 1.0/1.1 use setTTL()
/* prepare to read from the keyboard input */
stdin=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Begin typing (return to send," +
" ctrl-C to quit):");
while ((sendString=stdin.readLine()) != null) {
/* convert keyboard input to bytes */
sendBytes=sendString.getBytes();
/* populate the DatagramPacket */
DatagramPacket packet = new DatagramPacket(sendBytes, sendBytes.length, mcAddress, mcPort);
/* send the packet */
sock.send(packet);
}
sock.close();
} catch (IOException e) {
System.err.println(e.toString());
System.exit(1);
}
}
}
这是mcreceive...
package assignment;
import java.net.*; /* import networking package */
import java.io.*; /* import input/output package */
public class mcreceive {
public static final int MAX_LEN = 1024; /* max receive buffer */
public static final int MIN_PORT = 1024; /* min network port */
public static final int MAX_PORT = 65535; /* max network port */
public static void main(String argv[]) {
InetAddress mcAddress=null; /* multicast address */
int mcPort=0; /* multicast port */
int ttl=1; /* time to live */
boolean done=false; /* variable for send loop */
/* validate number of arguments */
if (argv.length != 2) {
System.out.println("Usage: mcreceive " +
"<Multicast IP> <Multicast Port>");
System.exit(1);
}
/* validate the multicast address argument */
try {
mcAddress = InetAddress.getByName(argv[0]);
} catch (UnknownHostException e) {
System.err.println(argv[0] + " is not a valid IP address");
System.exit(1);
}
/* validate address argument is a multicast IP */
if (! mcAddress.isMulticastAddress()) {
System.err.println(mcAddress.getHostAddress() +
" is not a multicast IP address.");
System.exit(1);
}
/* parse and validate port argument */
try {
mcPort = Integer.parseInt(argv[1]);
} catch (NumberFormatException nfe) {
System.out.println("Invalid port number " + argv[1]);
System.exit(1);
}
if ((mcPort < MIN_PORT) || (mcPort > MAX_PORT)) {
System.out.println("Invalid port number " + mcPort);
System.out.println("Port should be in range " + MIN_PORT
+ " to " + MAX_PORT);
System.exit(1);
}
try {
/* instantiate a MulticastSocket */
MulticastSocket sock = new MulticastSocket(mcPort);
/* set the address reuse option */
sock.setReuseAddress(true); // Java 1.4 and higher
/* join the multicast group */
sock.joinGroup(mcAddress);
while (!done) { /* loop forever */
/* create a new DatagramPacket with an empty buffer */
byte[] buf = new byte[MAX_LEN];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
/* wait to receive packet into the DatagramPacket instance */
sock.receive(packet);
/* output the data from the packet received */
System.out.println("Received " + packet.getLength() +
" bytes from " + packet.getAddress() + ": "
+ new String(packet.getData(),0,packet.getLength()));
}
sock.leaveGroup(mcAddress);
sock.close();
} catch (IOException e) {
System.err.println(e.toString());
System.exit(1);
}
}
}
还是不知道如何... =.=!!
什么是"用javac 的command.. "????
而且... 可以用Command Prompt Run Code的吗? |
|
|
|
|
|
|
|
发表于 19-10-2006 12:03 AM
|
显示全部楼层
哦。。那就先run server, 再run 几个client..
用 java 的command..
eg:
java mcsend
java mcreceive... |
|
|
|
|
|
|
|

楼主 |
发表于 19-10-2006 12:15 AM
|
显示全部楼层
我已经有Class了...
可是Run Command Prompt... 有Error...
Exception in thread "main" java.lang.NoClassDefFoundError: mcsend

看来我的1分也冷过水了... =.=!!!
[ 本帖最后由 伪君子 于 19-10-2006 12:20 AM 编辑 ] |
|
|
|
|
|
|
|
发表于 19-10-2006 12:24 AM
|
显示全部楼层
朋友。。你把他package去assignment 了嘛。。
你需要 java assignment.mcsend 啦 |
|
|
|
|
|
|
|

楼主 |
发表于 19-10-2006 12:31 AM
|
显示全部楼层
对不起...
我还是不能...
 |
|
|
|
|
|
|
|
发表于 19-10-2006 12:34 AM
|
显示全部楼层
退一个directory level好不好。。从你可以看到[assignment]那边。。。
而且你要用java 来run... not javac..
你不是要做voting system吗。。怎么end up with 这样
唉~。。。无力
祝你好运。。。
p/s:老实说我也是java 新手。但不是programing新手。
[ 本帖最后由 tensaix2j 于 19-10-2006 12:53 AM 编辑 ] |
|
|
|
|
|
|
|

楼主 |
发表于 19-10-2006 12:39 AM
|
显示全部楼层
因为MultiCastSocket是重点...
VoteSystem只是一个辅助...
对不起...
我真的很"白"...
可是... 退了directory还是不能...
退了几个还是一样... |
|
|
|
|
|
|
|
发表于 19-10-2006 12:43 AM
|
显示全部楼层
那你把package那行拿掉。。
去可以看到那两个.java file 的directory用javac 再compile过
然后用 java 来run.. |
|
|
|
|
|
|
|

楼主 |
发表于 19-10-2006 01:02 AM
|
显示全部楼层
哎...
还是不能...
看来我真的没希望了...
不过我真的谢谢你的帮忙... |
|
|
|
|
|
|
|
发表于 19-10-2006 01:06 AM
|
显示全部楼层
|
|
|
|
|
|
| |
本周最热论坛帖子
|