下面一个是客户端,一个是服务器~ 如何实现信息在客户端和服务器的相互传递!
import java.io.*;
import java.net.*;
public class UDPClient {
public static void main(String args[]) {
UDPClient udpClient = new UDPClient();
try {
udpClient.go();
} catch (Exception e) {
System.out.println("Exception occured withsocket.");
System.out.println(e);
System.exit(1);
}
}
public void go() throws IOException, UnknownHostException {
DatagramSocket datagramSocket;
DatagramPacket outDataPacket;
DatagramPacket inDataPacket;
InetAddress serverAddress;
byte[] msg = new byte[100];
String receivedMsg;
datagramSocket = new DatagramSocket();
serverAddress = InetAddress.getLocalHost();
outDataPacket = new DatagramPacket(msg, 1, serverAddress, 13);
datagramSocket.send(outDataPacket);
inDataPacket = new DatagramPacket(msg, msg.length);
datagramSocket.receive(inDataPacket);
receivedMsg = new String(inDataPacket.getData(), 0,inDataPacket.getLength());
System.out.println(receivedMsg);
datagramSocket.close();
---------------------------------------------------------------------------------------------------------
import java.io.*;
import java.net.*;
import java.util.*;public class UDPServer {
public static void main(String args[]) {
UDPServer udpServer = new UDPServer();
try {
udpServer.go();
} catch (IOException e) {
System.out.println("IOException occured with socket.");
System.out.println(e);
System.exit(1);
}
}
public byte[] getTime() {
Date d = new Date();
return d.toString().getBytes();
}
public void go() throws IOException {
DatagramSocket datagramSocket;
DatagramPacket inDataPacket;
DatagramPacket outDataPacket;
InetAddress clientAddress;
int clientPort;
byte[] msg = new byte[10];
byte[] time;
datagramSocket = new DatagramSocket(13);
System.out.println("UDP server active on port 13");
while (true) {
inDataPacket = new DatagramPacket(msg, msg.length);
datagramSocket.receive(inDataPacket);
clientAddress = inDataPacket.getAddress();
clientPort = inDataPacket.getPort();
time ="同学好!".getBytes(); //getTime();
outDataPacket = new DatagramPacket(time, time.length,
clientAddress, clientPort);
datagramSocket.send(outDataPacket);
}
}
}
import java.io.*;
import java.net.*;
public class UDPClient {
public static void main(String args[]) {
UDPClient udpClient = new UDPClient();
try {
udpClient.go();
} catch (Exception e) {
System.out.println("Exception occured withsocket.");
System.out.println(e);
System.exit(1);
}
}
public void go() throws IOException, UnknownHostException {
DatagramSocket datagramSocket;
DatagramPacket outDataPacket;
DatagramPacket inDataPacket;
InetAddress serverAddress;
byte[] msg = new byte[100];
String receivedMsg;
datagramSocket = new DatagramSocket();
serverAddress = InetAddress.getLocalHost();
outDataPacket = new DatagramPacket(msg, 1, serverAddress, 13);
datagramSocket.send(outDataPacket);
inDataPacket = new DatagramPacket(msg, msg.length);
datagramSocket.receive(inDataPacket);
receivedMsg = new String(inDataPacket.getData(), 0,inDataPacket.getLength());
System.out.println(receivedMsg);
datagramSocket.close();
---------------------------------------------------------------------------------------------------------
import java.io.*;
import java.net.*;
import java.util.*;public class UDPServer {
public static void main(String args[]) {
UDPServer udpServer = new UDPServer();
try {
udpServer.go();
} catch (IOException e) {
System.out.println("IOException occured with socket.");
System.out.println(e);
System.exit(1);
}
}
public byte[] getTime() {
Date d = new Date();
return d.toString().getBytes();
}
public void go() throws IOException {
DatagramSocket datagramSocket;
DatagramPacket inDataPacket;
DatagramPacket outDataPacket;
InetAddress clientAddress;
int clientPort;
byte[] msg = new byte[10];
byte[] time;
datagramSocket = new DatagramSocket(13);
System.out.println("UDP server active on port 13");
while (true) {
inDataPacket = new DatagramPacket(msg, msg.length);
datagramSocket.receive(inDataPacket);
clientAddress = inDataPacket.getAddress();
clientPort = inDataPacket.getPort();
time ="同学好!".getBytes(); //getTime();
outDataPacket = new DatagramPacket(time, time.length,
clientAddress, clientPort);
datagramSocket.send(outDataPacket);
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货