udp编程
来源:互联网 发布:shadownsocks ubuntu 编辑:程序博客网 时间:2024/05/21 05:20
package com.phone.week5.day5;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
public class AskClient {
public static void main(String[] args) { try { //1.准备要发送的数据,以及发送主机的IP地址和端口号 String mess = "您好,在吗?我想咨询一个问题"; byte[] b =mess.getBytes(); //得一指定主机的IP地址的对象 InetAddress ia = InetAddress.getByName("localhost"); int port = 7788; //2.创建一个发送数据的数据包 DatagramPacket dp = new DatagramPacket(b, b.length, ia, port); //3.创建一个发送数据包的套接字对象 DatagramSocket ds = new DatagramSocket(); //4.发送数据包 ds.send(dp); //接收服务器端的响应 byte[] by = new byte[1024]; //创建一个接收包 DatagramPacket dp2 = new DatagramPacket(by, by.length); //开始接收响应 ds.receive(dp2); String reply = new String(dp2.getData(), 0, dp2.getLength()); System.out.println("服务器端说:"+reply); //5.释放资源 ds.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (SocketException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }}
}
package com.phone.week5.day5;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketAddress;
import java.net.SocketException;
public class AskServer {
public static void main(String[] args) { try { //1.创建一个接收数据包的套接字对象并绑定一个指定的端口 DatagramSocket ds = new DatagramSocket(7788); //2.创建一个接收数据的字节数组 byte b[] = new byte[1024]; //3.创建一个接收数据的数据包 DatagramPacket dp = new DatagramPacket(b, b.length); //4.开始接收数据 ds.receive(dp); //5.对数据进行解析处理 String str = new String(dp.getData(), 0, dp.getLength()); System.out.println("客户端说:"+str); //响应客户端 String reply = "您好,我在的亲,有什么问题"; SocketAddress sa = dp.getSocketAddress(); //可以得到客户端的IP地址 //创建一个响应的数据包 DatagramPacket dp2 = new DatagramPacket(reply.getBytes(), reply.getBytes().length, sa); ds.send(dp2); //响应数据 //6.释放资源 ds.close(); } catch (SocketException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }}
}
package com.phone.week5.day5;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
public class UDPClient1 {
public static void main(String[] args) { try { DatagramSocket ds = new DatagramSocket(9999); new UDPReceiveThread(ds).start(); new UDPSendThread(ds, InetAddress.getByName("localhost"), 5555).start(); } catch (SocketException e) { e.printStackTrace(); } catch (UnknownHostException e) { e.printStackTrace(); } System.out.println("客户1启动了");}
}
package com.phone.week5.day5;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
public class UDPClient2 {
public static void main(String[] args) { try { DatagramSocket ds = new DatagramSocket(5555); new UDPReceiveThread(ds).start(); new UDPSendThread(ds, InetAddress.getByName("localhost"), 9999).start(); } catch (SocketException e) { e.printStackTrace(); } catch (UnknownHostException e) { e.printStackTrace(); } System.out.println("客户2启动了");}
}
package com.phone.week5.day5;
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 UDPSendThread extends Thread{
private DatagramSocket ds;private InetAddress ia;private int port;public UDPSendThread(DatagramSocket ds, InetAddress ia, int port) { super(); this.ds = ds; this.ia = ia; this.port = port;}@Overridepublic void run() { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while(true){ try { String line= br.readLine(); byte b[] = line.getBytes(); DatagramPacket dp = new DatagramPacket(b, b.length, ia, port); ds.send(dp); } catch (IOException e) { e.printStackTrace(); } }}
}
package com.phone.week5.day5;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class UDPReceiveThread extends Thread{
private DatagramSocket ds ;public UDPReceiveThread(DatagramSocket ds) { super(); this.ds = ds;}@Overridepublic void run() { //创建一个接收的数组 byte b[] = new byte[1024]; //创建一个接收的数据包 DatagramPacket dp = new DatagramPacket(b, b.length); while(true){ try { ds.receive(dp); String str = new String(dp.getData(), 0,
dp.getLength());
System.out.println(str);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
- UDP编程
- UDP编程
- UDP编程
- UDP编程
- Udp编程
- UDP编程
- UDP编程
- UDP编程
- UDP编程
- UDP 编程
- udp编程
- Udp编程
- UDP编程
- UDP编程
- UDP编程
- UDP编程
- UDP编程
- udp编程
- CentOS下使用tcpdump网络抓包用
- 111
- springMVC+mybatis+maven搭建过程
- HDU 5239 Doom The 2015 ACM-ICPC China Shanghai Metropolitan Programming Contest
- 使用函数BBP_INB_DELIVERY_CREATE(VL31n)创建内向交货单时,交货单内的物料字段为空
- udp编程
- Day-1:C语言基本知识:
- 复位应答ATR的基本结构和数据单元
- linux下使用tar命令
- C++重载运算符相关
- centos6.7 32位系统安装后无法连接wifi,原因是没有安装相应的无线网卡驱动
- 快速Android开发系列网络篇之Retrofit, Retrofit OKHttp GSON
- MD5编码字符串的代码
- Delete Digits