学习 Java UDP 小结
2016-01-04 19:55
465 查看
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
学习收获:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
1.
//定义一个输入 包的是键盘输入
Scanner sc = new Scanner(System.in);
//键盘输入存入字符串变量
String content = sc.next();
//字符串通过 getBytes() 方法获取字节 存入 buf 数组中
byte[] buf = content.getBytes();
2.
//DatagramPacket p 内容转换成数组,测试 p 中的内容是否为空
byte[] dataTest = p.getData();
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
1.clientTest.java
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
public class cilentTest {
public static void main(String args[]) {
try {
//定义一个 DatagramSocket 对象
DatagramSocket socket = new DatagramSocket();
//定义一个输入 包的是键盘输入
Scanner sc = new Scanner(System.in);
//键盘输入存入字符串变量
String content = sc.next();
//字符串通过 getBytes() 方法获取字节 存入 buf 数组中
byte[] buf = content.getBytes();
//测试是否存入数组。。。忽略它 = =
for(int i=0;i<buf.length;i++){
System.out.println("buf 的值:"+ buf[i]);
}
//udp 只能传输不超过 64 kb 的文件
if (buf.length > 1024 * 64) {
System.out.println("输出内容超出 udp 长度");
return;
}
//定义一个数据包 把 buf 数组的的内容,长度传进来
DatagramPacket packet = new DatagramPacket(buf, buf.length);
//设置访问的 IP 地址
packet.setAddress(InetAddress.getByName("192.168.1.159"));
//设置端口
packet.setPort(5550);
//把 packet 通过建立好的 socket 对象发送
socket.send(packet);
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
2.server.java
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
public class server {
/**
* @param args
*/
public static void main(String[] args) {
try {
//定义一个 DatagramSocket 对象 包含端口
DatagramSocket s = new DatagramSocket(5550);
//定义一个空的数组 并把它打包成 DatagramPacket 的数据包,此时 packet 是 null
byte[] b = new byte[1024*64-1];
DatagramPacket p = new DatagramPacket(b, b.length);
//DatagramPacket p 内容转换成数组,测试 p 中的内容是否为空
byte[] dataTest = p.getData();
for (int i = 0; i < 10; i++) {
System.out.println("packet 的内容:" + dataTest[i]);
}
System.out.println("等待接收数据包。。。");
//通过 receie 方法把从客户端传来的 packet 接收
s.receive(p);
//读取接收的数据,存入数组
byte[] date = p.getData();
String str = new String(date);
System.out.println("接收到" + p.getAddress().getHostAddress()
+ "发送过来的数据报:" + str);
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
学习收获:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
1.
//定义一个输入 包的是键盘输入
Scanner sc = new Scanner(System.in);
//键盘输入存入字符串变量
String content = sc.next();
//字符串通过 getBytes() 方法获取字节 存入 buf 数组中
byte[] buf = content.getBytes();
2.
//DatagramPacket p 内容转换成数组,测试 p 中的内容是否为空
byte[] dataTest = p.getData();
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
1.clientTest.java
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
public class cilentTest {
public static void main(String args[]) {
try {
//定义一个 DatagramSocket 对象
DatagramSocket socket = new DatagramSocket();
//定义一个输入 包的是键盘输入
Scanner sc = new Scanner(System.in);
//键盘输入存入字符串变量
String content = sc.next();
//字符串通过 getBytes() 方法获取字节 存入 buf 数组中
byte[] buf = content.getBytes();
//测试是否存入数组。。。忽略它 = =
for(int i=0;i<buf.length;i++){
System.out.println("buf 的值:"+ buf[i]);
}
//udp 只能传输不超过 64 kb 的文件
if (buf.length > 1024 * 64) {
System.out.println("输出内容超出 udp 长度");
return;
}
//定义一个数据包 把 buf 数组的的内容,长度传进来
DatagramPacket packet = new DatagramPacket(buf, buf.length);
//设置访问的 IP 地址
packet.setAddress(InetAddress.getByName("192.168.1.159"));
//设置端口
packet.setPort(5550);
//把 packet 通过建立好的 socket 对象发送
socket.send(packet);
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
2.server.java
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
public class server {
/**
* @param args
*/
public static void main(String[] args) {
try {
//定义一个 DatagramSocket 对象 包含端口
DatagramSocket s = new DatagramSocket(5550);
//定义一个空的数组 并把它打包成 DatagramPacket 的数据包,此时 packet 是 null
byte[] b = new byte[1024*64-1];
DatagramPacket p = new DatagramPacket(b, b.length);
//DatagramPacket p 内容转换成数组,测试 p 中的内容是否为空
byte[] dataTest = p.getData();
for (int i = 0; i < 10; i++) {
System.out.println("packet 的内容:" + dataTest[i]);
}
System.out.println("等待接收数据包。。。");
//通过 receie 方法把从客户端传来的 packet 接收
s.receive(p);
//读取接收的数据,存入数组
byte[] date = p.getData();
String str = new String(date);
System.out.println("接收到" + p.getAddress().getHostAddress()
+ "发送过来的数据报:" + str);
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
相关文章推荐
- java日期组件
- Java EL 详细用法讲解
- Java8删除了jdbc.odbc驱动
- java的Iterator
- Java并发编程之CountDownLatch
- java js 日期总结
- javaEmail发送邮件问题总结
- XmlPullParserException: Unexpected token (position:TEXT @1:2 in java.io.StringReader)
- java压缩多个文件并且返回流示例
- 深入分析JavaWeb Item42 -- JavaMail创建邮件和发送邮件
- java.lang.IllegalStateException: The content of the adapter has changed but ListView..
- struts2 s:iterator标签
- 深入分析JavaWeb Item41 -- 邮件的发送与接收原理
- eclipse发布项目报错:Multiple Contexts hava a path of “/xxx“
- 解决java compiler level does not match the version of the installed java project facet
- java基础 —— properties 使用
- SpringMVC常用注解--【SpringMVC】
- jar命令成功完成 java -jar 命令却提示“没有主清单属性”!
- SpringMVC--常用注解(详解)
- [置顶] Java 23种设计模式