请教基于UDP的客户服务器模式的实现?VB.net,C#,C++,java编出来的都可以,给小弟我参考下,谢谢!
编写UDP服务器程序接受UDP客户端程序的命令,并根据命令向UDP客户机做出响应。当UDP客户机向服务器请求“getfile”命令时,UDP服务器向客户机发送制定文件input中的数据;当UDP客户机向服务器请求gettime命令时,UDP服务器向客户机发送系统当前时间;当UDP客户机向服务器请求其它任何命令时,UDP服务器向客户机发送“这不是正确的命令”。UDP服务器程序的具体要求如下:
(1)要求程序为命令行程序。例如,可执行文件名为UDPServer.exe,则程序的命令行格式如下。
UDPServer server_port
其中,server_port为服务器的服务端口。
(2)要求将UDP服务器的状态显示在控制台上,具体格式如下。
UDPServer接收命令:……
UDPServer发送命令:……
(3)要求有良好的编程规范和注释。
UDP客户机程序的具体要求如下:
(1)要求程序为命令行程序。例如,可执行文件名为UDPClient.exe,则程序的命令行格式如下。
UDPClient server_addr server_port command
其中,server_addr为服务器的IP地址,server_port为服务器的服务端口,command为客户机发送的命令。
(2)要求将UDP客户机的状态显示在控制台上,具体格式如下。
UDPClient 发送命令:……
UDPClient 接受命令:……
(3)要求有良好的编程规范和注释。
[size=7][size=7]各位大哥,我是新手,了解不是很多,希望各位大哥帮我看下,如下代码,需要添加什么功能,才能完全上面的内容提要![/size][/size]import *;
public class TestNet
{
public static void main(String[] args) throws Exception
{
InetAddress ia = InetAddress.getByName("compaq");
String ipAdr = ia.getHostAddress();
System.out.println(ipAdr);
}
}
2.
import *;
import *;
public class GetTime {
final private static int DAYTIME_PORT = 13;
public static void main(String args[]) throws
IOException {
if (args.length == 0) {
System.err.println("Please specify daytime host");
System.exit(-1);
}
String host = args[0];
byte message[] = new byte[256];
InetAddress address = InetAddress.getByName(host);
System.out.println("Checking at:"+ address);
DatagramPacket packet = new DatagramPacket(message, message.length,address,DAYTIME_PORT);
DatagramSocket socket = new DatagramSocket();
socket.send(packet);
packet =new DatagramPacket(message, message.length);
socket.receive(packet);
String time = new String(packet.getData());
String is;
System.out.println(The time at"+ host+is:"+time);
socket.close();
}
}
3.
import *;
import *;
import java.util.*;
public class TimeServer {
final private static int DAYTIME_PORT = 13;
public static void main(String args[]) throws
IOException {
DatagramSocket socket =
new DatagramSocket(DAYTIME_PORT);
while (true) {
byte buffer[] = new byte[256];
DatagramPacket packet =
new DatagramPacket(buffer, buffer.length);
socket.receive(packet);
String date = new Date().toString();
buffer = date.getBytes();
// Get response address/port
// for client from packet
InetAddress address = packet.getAddress();
int port = packet.getPort();
packet = new DatagramPacket(buffer, buffer.length,
address, port);
socket.send(packet);
}
}
}