62,615
社区成员
发帖
与我相关
我的任务
分享
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultEditorKit;
import javax.swing.text.Document;
public class DataSend extends Thread {
//数据源自文件
String fileName = "data.txt";
int LineNumber =0;
private DatagramSocket socket;
private InetAddress address;
private int PORT=50505;
private DatagramPacket packet ;//创建要发送的数据包
//private String buff = "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF";
private int millis = 500;
public DataSend()
{
try{
socket = new DatagramSocket();
address = InetAddress.getLocalHost();
}
catch (SocketException e) {
System.out.println("can not open socket");
e.printStackTrace();
System.exit(1);
} catch (UnknownHostException e) {
System.out.println("Can not find host");
System.exit(1);
}
System.out.println("DataSend start working");
start();//之后调用run()
}
public void run()
{
File file=new File(fileName);
BufferedReader bufferedReader = null;
if(file.isFile() && file.exists())
{
InputStreamReader read = null;
try {
read = new InputStreamReader(
new FileInputStream(file),"gbk");
} catch (UnsupportedEncodingException | FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}//考虑到编码格式
bufferedReader = new BufferedReader(read);
String lineTxt = null;
try
{
while((lineTxt = bufferedReader.readLine()) != null)
{
if(lineTxt.length()>0)
{
byte[] data = new byte[lineTxt.length()];
for(int i=0;i<lineTxt.length();i++)
{
data[i] = (byte) lineTxt.charAt(i);
}
packet= new DatagramPacket(data,data.length,address,PORT);
socket.send(packet);
byte[] recData = packet.getData();
StringBuilder str = new StringBuilder();
for(int i=0;i<recData.length;i++)
{
str.append((char)recData[i]);
}
System.out.println("Data Send: "+ str.toString());
Thread.sleep(millis);
}
}
}
catch (Exception e) {
e.printStackTrace();
System.exit(1);//出错退出
}
try {
read.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public class program {
public static void main(String[] args)
{
new DataRec();
}
}