UDP:
package UDP.client;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;
public class MyUDPclient {
public static void main(String[] args) {
try {
//创建socket绑定到指定的端口
DatagramSocket socket = new DatagramSocket(2011);
sendThread s = new sendThread(socket);
s.start();
while(true){
//接受信息
byte receiveb[] = new byte[1024];
DatagramPacket receivepacket = new DatagramPacket(receiveb,receiveb.length);
socket.receive(receivepacket);
String str = new String(receiveb,0,receivepacket.getLength());
System.out.println("收到 服务器 信息:"+str);
System.out.println("请输入发给 服务器 的信息:");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
class sendThread extends Thread{
DatagramSocket socket = null;
Scanner in = new Scanner(System.in);
public sendThread(DatagramSocket socket){
this.socket = socket;
}
public void run() {
try {
System.out.println("请输入发给 服务器 的信息:");
while(true){
//发送信息
String sendstr = in.next();
byte sendb[] = sendstr.getBytes();
InetAddress address = InetAddress.getByName("127.0.0.1");
//创建一个发送数据报,address为接收方地址,port(2012)为接收方端口
DatagramPacket sendpacket = new DatagramPacket(sendb,sendb.length,address,2012);
socket.send(sendpacket);
}
}catch (Exception e) {
e.printStackTrace();
}
}
}
package UDP.server;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;
public class MyUDPserver {
public static void main(String[] args) {
try {
//创建socket绑定到指定的端口
DatagramSocket socket = new DatagramSocket(2012);
sendThread s = new sendThread(socket);
s.start();
while(true){
//接受信息
byte receiveb[] = new byte[1024];
//创建接收数据报对象,能接收实际长度字节的数据放到receive位置
DatagramPacket receivepacket = new DatagramPacket(receiveb,receiveb.length);
socket.receive(receivepacket);
String str = new String(receiveb,0,receivepacket.getLength());
System.out.println("收到 客户 信息:"+str);
System.out.println("请输入发给 客户 的信息:");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
class sendThread extends Thread{
DatagramSocket socket = null;
Scanner in = new Scanner(System.in);
public sendThread(DatagramSocket socket) {
this.socket = socket;
}
public void run() {
try {
while(true){
//发送信息
String sendstr = in.next();
byte sendb[] = sendstr.getBytes();
InetAddress address = InetAddress.getByName("127.0.0.1");
//创建一个发送数据报,address为接收方地址,port(2011)为接收方端口
DatagramPacket sendpacket = new DatagramPacket(sendb,sendb.length,address,2011);
socket.send(sendpacket);
}
}catch (Exception e) {
e.printStackTrace();
}
}
}
package UDP.client;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;
public class MyUDPclient {
public static void main(String[] args) {
try {
//创建socket绑定到指定的端口
DatagramSocket socket = new DatagramSocket(2011);
sendThread s = new sendThread(socket);
s.start();
while(true){
//接受信息
byte receiveb[] = new byte[1024];
DatagramPacket receivepacket = new DatagramPacket(receiveb,receiveb.length);
socket.receive(receivepacket);
String str = new String(receiveb,0,receivepacket.getLength());
System.out.println("收到 服务器 信息:"+str);
System.out.println("请输入发给 服务器 的信息:");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
class sendThread extends Thread{
DatagramSocket socket = null;
Scanner in = new Scanner(System.in);
public sendThread(DatagramSocket socket){
this.socket = socket;
}
public void run() {
try {
System.out.println("请输入发给 服务器 的信息:");
while(true){
//发送信息
String sendstr = in.next();
byte sendb[] = sendstr.getBytes();
InetAddress address = InetAddress.getByName("127.0.0.1");
//创建一个发送数据报,address为接收方地址,port(2012)为接收方端口
DatagramPacket sendpacket = new DatagramPacket(sendb,sendb.length,address,2012);
socket.send(sendpacket);
}
}catch (Exception e) {
e.printStackTrace();
}
}
}
package UDP.server;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;
public class MyUDPserver {
public static void main(String[] args) {
try {
//创建socket绑定到指定的端口
DatagramSocket socket = new DatagramSocket(2012);
sendThread s = new sendThread(socket);
s.start();
while(true){
//接受信息
byte receiveb[] = new byte[1024];
//创建接收数据报对象,能接收实际长度字节的数据放到receive位置
DatagramPacket receivepacket = new DatagramPacket(receiveb,receiveb.length);
socket.receive(receivepacket);
String str = new String(receiveb,0,receivepacket.getLength());
System.out.println("收到 客户 信息:"+str);
System.out.println("请输入发给 客户 的信息:");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
class sendThread extends Thread{
DatagramSocket socket = null;
Scanner in = new Scanner(System.in);
public sendThread(DatagramSocket socket) {
this.socket = socket;
}
public void run() {
try {
while(true){
//发送信息
String sendstr = in.next();
byte sendb[] = sendstr.getBytes();
InetAddress address = InetAddress.getByName("127.0.0.1");
//创建一个发送数据报,address为接收方地址,port(2011)为接收方端口
DatagramPacket sendpacket = new DatagramPacket(sendb,sendb.length,address,2011);
socket.send(sendpacket);
}
}catch (Exception e) {
e.printStackTrace();
}
}
}