UDP
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class TestUDP {
public static void main(String[] args) {
if(args.length>0)//Send Data
{
try {
DatagramSocket socket = new DatagramSocket(22222);//发送端口
byte[] buf = "hello".getBytes();
System.out.println("Start Sending");
DatagramPacket datagramPacket = new DatagramPacket(buf, buf.length,
InetAddress.getByName("127.0.0.1"), 33339);//远程接受端口
socket.send(datagramPacket);
System.out.println("sending completed");
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}else{ //Receive Data
try {
DatagramSocket socket = new DatagramSocket(33339);
byte[] buf = new byte[1024];
DatagramPacket datagramPacket=new DatagramPacket(buf, buf.length);
System.out.println("start receiving");
socket.receive(datagramPacket);
System.out.println(new String(buf, 0, datagramPacket.getLength()));
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
Socket
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class TestSocket {
if (args.length > 0) {
try {
Socket s = new Socket(InetAddress.getByName("127.0.0.1"), 33333);
OutputStream os = s.getOutputStream();
InputStream is = s.getInputStream();
byte[] buf = args[0].getBytes();
System.out.println("send \""+args[0]+"\"");
os.write(buf);
is.close();
os.close();
s.close();
} catch (Exception e) {
e.printStackTrace();
}
} else {
try {
ServerSocket ss = new ServerSocket(33333);
System.out.println("listening");
Socket s = ss.accept();// BLOCK
OutputStream os = s.getOutputStream();
InputStream is = s.getInputStream();
byte[] buf = new byte[1024];
int length=is.read(buf);//BLOCK
System.out.println("Data received:"+new String(buf, 0, length));
is.close();
os.close();
s.close();
ss.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}