黑马程序员技术交流社区
标题:
实现局域网消息的发送功能实现
[打印本页]
作者:
不安分的程序猿
时间:
2016-5-19 23:42
标题:
实现局域网消息的发送功能实现
/**
* @author 不安份的程序猿
*
*/
//UDP协议实现 输出数据
public class DemoGet {
public static void main(String[] args) throws Exception {
final DatagramSocket get = new DatagramSocket(9999); // 创建接口
final boolean t = true;
new Thread(new Runnable() {
@Override
public void run() {
while (t) {
// 接收set发送的消息
byte[] b = new byte[1024]; //
DatagramPacket dp = new DatagramPacket(b, b.length);// 将从b到b.length都进行打包
try {
get.receive(dp);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // 接受这个包
int length = dp.getLength();// 获取这个包的长度
// System.out.println(new String(b,0,length)); //转化成字符串然后输出
System.out.println("消息是由" + dp.getAddress() + "发送的,端口是:"
+ dp.getPort() + "内容是" + new String(b, 0, length));
}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
while (t) {
// 往set回复消息
try {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
DatagramPacket send = new DatagramPacket(
str.getBytes(), str.getBytes().length,
InetAddress.getLocalHost(), 6666);
get.send(send);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}).start();
// get.close();
}
}
复制代码
作者:
不安分的程序猿
时间:
2016-5-19 23:44
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;
//利用UDP协议编写 实现客户端和服务器
//此类是输出端
public class DemoSet {
public static void main(String[] args) throws Exception {
final DatagramSocket set = new DatagramSocket(6666);
final boolean t = true;
new Thread(new Runnable() {
@Override
public void run() {
while (t) {
try {
// 往服务器发送消息
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
DatagramPacket dp = new DatagramPacket(str.getBytes(),
str.getBytes().length,
InetAddress.getLocalHost(), 9999);
set.send(dp);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
while (t) {
// 从get类里面获取消息
byte[] b = new byte[1024];
DatagramPacket re = new DatagramPacket(b, b.length);
try {
set.receive(re);
} catch (IOException e) {
e.printStackTrace();
}
int length = re.getLength();
System.out.println("消息是由" + re.getAddress() + "返回的,它的端口是"
+ re.getPort() + ",输出的内容是"
+ new String(b, 0, length));
}
}
}).start();
// set.close();// 用了线程 就没必要存在了
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2