java socket通信 TCP客户端: import java.net.*; import java.io.*; public class Client { static Socket server; public static void main(String[] args) throws Exception { server = new Socket(InetAddress.getLocalHost(), 23); BufferedReader in = new BufferedReader(new InputStreamReader(server .getInputStream())); PrintWriter out = new PrintWriter(server.getOutputStream()); BufferedReader wt = new BufferedReader(new InputStreamReader(System.in)); while (true) { System.out.println("想知道现在是什么时间吗?(输入任意文字表示 同意,输入end表示退出)"); String str = wt.readLine(); out.println(str); out.flush(); if (str.equals("end")) { break; } System.out.println(in.readLine()); } server.close(); } } TCP服务器代码: import java.io.*; import java.net.*; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Server { public static void main(String[] args) throws IOException { ServerSocket server = new ServerSocket(23); Socket client = server.accept(); BufferedReader in = new BufferedReader(new InputStreamReader(client .getInputStream())); PrintWriter out = new PrintWriter(client.getOutputStream()); while (true) { String str = in.readLine(); System.out.println(str); SimpleDateFormat f=new SimpleDateFormat("MMM dd,yyyy kk:mm:ss"); String time = f.format(new Date()); out.println("现在的时间是:"+time); out.flush(); if (str.equals("end")) break; } client.close(); } } UDP服务器代码: import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.ServerSocket; import java.net.SocketException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class UDPServer { private static DatagramSocket udpSocket = null; private static DatagramPacket packet = null; public UDPServer() throws SocketException { udpSocket = new DatagramSocket(23); this.packet = new DatagramPacket(new byte[512], 512); } public static void main(String[] args) throws Exception { UDPServer udps = new UDPServer(); while (true) { try { udpSocket.receive(packet); String msg = new String(packet.getData(), 0, packet.getLength()); System.out.println(msg); if(msg.equals("end")){ break; } SimpleDateFormat f=new SimpleDateFormat("MMM dd,yyyy kk:mm:ss"); String time = "现在的时间是:"+f.format(new Date()); packet.setData(time.getBytes()); udpSocket.send(packet); } catch (IOException e) { e.printStackTrace(); } } } } UDP客户端代码: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class UDPClient { private static String remoteHost = "localhost"; private static int remotePort = 23; private static DatagramSocket socket = null; public static void main(String[] args) throws Exception { DatagramSocket socket = new DatagramSocket(); while (true) { System.out.println("想知道现在是什么时间吗?(输入任意文字表示 同意,输入end表示退出)"); BufferedReader wt = new BufferedReader(new InputStreamReader( System.in)); String str = wt.readLine(); try { InetAddress remoteIP = InetAddress.getByName(remoteHost); byte[] outputData = str.getBytes(); DatagramPacket outputPacket = new DatagramPacket(outputData, outputData.length, remoteIP, remotePort); socket.send(outputPacket); if (str.equals("end")) { break; } DatagramPacket inputPacket = new DatagramPacket(new byte[512], 512); socket.receive(inputPacket); System.out.println(new String(inputPacket.getData(), 0, inputPacket.getLength())); } catch (IOException e) { e.printStackTrace(); socket.close(); } } socket.close(); } }