导航:首页 > 数据行情 > java8多线程股票数据下载

java8多线程股票数据下载

发布时间:2023-01-01 05:42:23

1. 开发炒股软件,从哪里获得股票数据

行情数据源在上交所和深交所。需要购买。而且很贵。

象我们平常看到行情,是券商营业部所买,我们连到他们服务器,而接收到数据。

P2P数据接口使用说明(1)2009-03-18 08:58接口使用说明:
1. 压缩包包含四个文件,分别为P2P.exe,P2P.CFG,zlib.dll和使用说明.txt,可以解压到任意盘任意目录下使用。
2. 支持的行情分析软件有:
(1) 分析家2006,2005等,要求分析家主窗口标题最前面的几个字是"分析家 -",是否是破解版关系不大,最好是下载分析家官方网站的正版分析家,网址是http://www.fxj.com.cn,分析家其他版本号是否支持,我也没全做试验。
(2) 飞狐交易师,支持飞狐交易师,要求飞狐交易师主窗口标题最前面的几个字是"飞狐交易师"或"证券分析师",是否是破解版关系不大,最好是支持正版,用正版的。
(3) 大智慧新一代,要求大智慧主窗口标题最前面的几个字是"大智慧Level" 支持的版本号有 09.0226,08.0907,08.0801,07.0205 共四个。
注:如果分析软件的窗口标题不符合上面说的,则分析软件无法接收数据。以上三个分析软件最好都是正版的,只要下载正版的软件,安装后,无需做任何修改即可使用。接口再次说明一下,接口中的四个文件解压到任意目录下使用都可以,而无需解压到某个分析软件的某个目录下,或替代某个分析软件的某个文件。接口完全是绿色的,无需安装,也不会在注册表中留下任何信息。
3. 每天9:15分以后用行情软件中的数据管理功能先清除当天的行情数据,然后把右下角“发送数据”发送数据前面的钩选上。
4. 如果不能在开盘前打开该软件,比如10点半才打开,那么该接口会自动补充10点半之前的行情数据,为了能够尽快的把前面的数据补充完毕,请把速度调节到100以上。但如果是飞狐,则把该值调低一些,否则飞狐会来不及处理数据,把大量的数据放到内存中,造成飞狐使用内存越来越大,最后由于内存耗完造成飞狐或接口非法退出。大智慧和分析家则不存在这个问题。
5. 收盘后,该接口具有白天行情的回放功能,回放前,最好先清除行情软件中当天的行情数据。
6. 该接口由于是P2P接收数据,因此数据接收需要种子,只有和别的种子连上了,你就能接收数据了,你至少要和一个种子连上,当然,你连上别的种子后,你也就能称为种子了,你也就能为别的人提供数据服务功能了。
7. 两个人要连接成功,最好两个人中有一个人的IP地址是公网地址,如果两个全是内网地址则相互无法直接联通,必须借助第三方才能联通,该方法这里不再介绍了。
8. 如果网络情况比较良好,则行情数据的延时一般不会大于0.5秒。
9. 接口的P2P连接信息中的字段说明
(1). 远程完成--为该IP接收到完整数据包的个数。
(2). 远程请求--为该IP请求你发送的数据包序号。
(3). 本机请求--为本机请求远程发送数据包序号。
(4). 请求返回--远程响应本机请求的次数。

2. java如何实现基于http和ftp多线程下载工具...

要访问网络资源就要去了解你要访问的网络资源所使用的协议。一般来说我们所使用的协议都是公开式的协议,比如http协议,它在数据的前面部分先设置一些信息来说明它所发送的数据的大小,文件类型等等。而多线程的实现原理就是先从http协议中获取要下载的资源的资源大小,然后再分多个线程从不同的起点跟终点来分段下载资源。ftp资源的道理也是一样。当然我并不是网络方面的专家,对网络我也不懂。以后只是我个人见解。
以下是给你找的一个java实现的http多线程下载。你看看吧
http://shazi.javaeye.com/blog/99132

3. 用java语言可以实时获取股票数据。我想知道能否用c语言来读取新浪股票信息呢具体怎么实现,谢谢。

你好,可以给你些参考,资金流向,风控等要注意。其他内容还有很多。股市方面问题都可以问的。妇道人家

4. java 多线程存储数据库

以mysql为数据库写的一个粗陋的demo,你参考一下,希望不会因为代码过多被网络吞了——


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class Test {

public static void main(String[] args) {
allotThread();
}

/**
* 将100条数据分成10份并启动10个线程分别操作
*/
public static void allotThread() {
List<String[]> datas = buildDatas();
for (int i=0; i<100; i+=10) {
List<String[]> tenDatas = datas.subList(i, i + 10);
insertData(tenDatas);
}
}

/**
* 创建100条模拟数据
* @return
*/
public static List<String[]> buildDatas() {
List<String[]> datas = new ArrayList<String[]>();
for (int i=0; i<100; i++) {
String[] data = {"id " + i, "name " + i};
datas.add(data);
}
return datas;
}

/**
* 启动线程进行数据插入操作
* @param tenDatas
*/
public static void insertData(final List<String[]> tenDatas) {
new Thread(new Runnable() {
public void run() {
String sql = "insert into testtable (id, name) values (?, ?)";
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = getConnection();
conn.setAutoCommit(false);
pstmt = getPstmt(conn, sql);
for (String[] data : tenDatas) {
pstmt.setString(1, data[0]);
pstmt.setString(2, data[1]);
pstmt.addBatch();
}
pstmt.executeBatch();
conn.commit();
conn.setAutoCommit(true);
} catch (SQLException e) {
e.printStackTrace();
rollback(conn);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
close(pstmt);
close(conn);
}
}
}).start();
}

public static Connection getConnection() throws SQLException, ClassNotFoundException {
Class.forName("com.mysql.jdbc.Driver");
String dbUrl = "jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=UTF-8";
Connection conn = DriverManager.getConnection(dbUrl, "root", "tooeasy");
return conn;
}

public static PreparedStatement getPstmt(Connection conn, String sql) throws SQLException, ClassNotFoundException {
PreparedStatement pstmt = conn.prepareStatement(sql);
return pstmt;
}

public static void rollback(Connection conn) {
try {
if (null != conn) {
conn.rollback();
}
} catch (SQLException e) {
e.printStackTrace();
}
}

public static void close(Connection conn) {
try {
if (null != conn) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}

public static void close(PreparedStatement pstmt) {
try {
if (null != pstmt) {
pstmt.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}

public static void close(ResultSet rs) {
try {
if (null != rs) {
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}

5. 请问怎样用Java获取股票行情历史数据新浪、搜狐、百度财经都可以......

publicclassStockConnection{
publicstaticvoidmain(String[]args){
URLur=null;
try{
//搜狐股票行情历史接口
// ur=newURL("http://q.stock.sohu.com/hisHq?code=cn_300228&start=20130930&end=20131231&stat=1&order=D&period=d&callback=historySearchHandler&rt=jsonp");
//新浪股票行情历史接口
ur=newURL("http://biz.finance.sina.com.cn/stock/flash_hq/kline_data.php?&rand=random(10000)&symbol=sh600000&end_date=20150809&begin_date=20000101&type=plain");
HttpURLConnectionuc=(HttpURLConnection)ur.openConnection();
BufferedReaderreader=newBufferedReader(newInputStreamReader(ur.openStream(),"GBK"));
Stringline;
while((line=reader.readLine())!=null){
System.out.println(line);
}
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}

6. 使用java编写一个多线程下载器,需要在URL栏中输入网址,然后通过网址下载。该怎么实现,求源代码

swing做前台界面。后台使用java.net中的HTTPConnection下载就OK。下载可以用getInputStream()获取数据,然后写入文件。只提供思路,无代码。不搞java好多年……

7. Java如何实现多线程传输文件,就像迅雷下载一样,开十多个线程分段传送字节流

程序分Server和Client

服务器端打开侦听的端口,一有客户端连接就创建两个新的线程来负责这个连接

一个负责客户端发送的信息(ClientMsgCollectThread 类),

另一个负责通过该Socket发送数据(ServerMsgSendThread )

Server.java代码如下:

/*
* 创建日期 2009-3-7
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
package faue.MutiUser;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

/**
* 服务器端
*
* @author Faue
*/
public class Server extends ServerSocket {

private static final int SERVER_PORT = 10000;

/**
* 构造方法,用于实现连接的监听
*
* @throws IOException
*/
public Server() throws IOException {
super(SERVER_PORT);

try {
while (true) {
Socket socket = super.accept();

new Thread(new ClientMsgCollectThread(socket), "getAndShow"
+ socket.getPort()).start();
new Thread(new ServerMsgSendThread(socket), "send"
+ socket.getPort()).start();

}
} catch (IOException e) {
e.printStackTrace();
}

}

public static void main(String[] args) throws IOException {
new Server();
}

/**
* 该类用于创建接收客户端发来的信息并显示的线程
*
* @author Faue
* @version 1.0.0
*/
class ClientMsgCollectThread implements Runnable {

private Socket client;

private BufferedReader in;

private StringBuffer inputStringBuffer = new StringBuffer("Hello");

/**
* 得到Socket的输入流
*
* @param s
* @throws IOException
*/
public ClientMsgCollectThread(Socket s) throws IOException {
client = s;

in = new BufferedReader(new InputStreamReader(client
.getInputStream(), "GBK"));
}

public void run() {
try {

while (!client.isClosed()) {
inputStringBuffer.delete(0, inputStringBuffer.length());
inputStringBuffer.append(in.readLine());

System.out.println(getMsg(inputStringBuffer.toString()));
}
} catch (IOException e) {
//e.printStackTrace();
System.out.println(client.toString() + " is closed!");

}
}

/**
* 构造显示的字符串
*
* @param line
* @return
*/
private String getMsg(String line) {
return client.toString() + " says:" + line;
}

}

/**
* 该类用于创建发送数据的线程
*
* @author Faue
* @version 1.0.0
*/
class ServerMsgSendThread implements Runnable {

private Socket client;

private PrintWriter out;

private BufferedReader keyboardInput;

private StringBuffer outputStringBuffer = new StringBuffer("Hello");

/**
* 得到键盘的输入流
*
* @param s
* @throws IOException
*/
public ServerMsgSendThread(Socket s) throws IOException {
client = s;

out = new PrintWriter(client.getOutputStream(), true);
keyboardInput = new BufferedReader(new InputStreamReader(System.in));

}

public void run() {
try {

while (!client.isClosed()) {
outputStringBuffer.delete(0, outputStringBuffer.length());
outputStringBuffer.append(keyboardInput.readLine());

out.println(outputStringBuffer.toString());
}
} catch (IOException e) {
//e.printStackTrace();
System.out.println(client.toString() + " is closed!");

}
}

}

}

客户端:

实现基于IP地址的连接,连接后也创建两个线程来实现信息的发送和接收

/*
* 创建日期 2009-3-7
*
*/
package faue.MutiUser;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

/**
* 客户端
*
* @author Faue
*/
public class Client {

private Socket mySocket;

/**
* 创建线程的构造方法
*
* @param IP
* @throws IOException
*/
public Client(String IP) throws IOException {

try {
mySocket = new Socket(IP, 10000);
new Thread(new ServerMsgCollectThread(mySocket), "getAndShow"
+ mySocket.getPort()).start();
new Thread(new ClientMsgSendThread(mySocket), "send"
+ mySocket.getPort()).start();

} catch (IOException e) {
//e.printStackTrace();
System.out.println("Server.IP:" + IP
+ " port:10000 can not be Connected");
}
}

public static void main(String[] args) throws IOException {
try {
new Client(args[0]);
} catch (Exception e) {
System.out.println("输入的IP地址错误");
}
}

/**
* 该类用于创建接收服务端发来的信息并显示的线程
*
* @author Faue
* @version 1.0.0
*/
class ServerMsgCollectThread implements Runnable {

private Socket client;

private BufferedReader in;

private StringBuffer inputStringBuffer = new StringBuffer("Hello");

/**
* 得到Socket的输入流
*
* @param s
* @throws IOException
*/
public ServerMsgCollectThread(Socket s) throws IOException {
client = s;

in = new BufferedReader(new InputStreamReader(client
.getInputStream(), "GBK"));
}

public void run() {
try {

while (!client.isClosed()) {
inputStringBuffer.delete(0, inputStringBuffer.length());
inputStringBuffer.append(in.readLine());
System.out.println(getMsg(inputStringBuffer.toString()));
}
} catch (IOException e) {
//e.printStackTrace();
System.out.println(client.toString() + " is closed!");
System.exit(0);
}
}

/**
* 构造输入字符串
*
* @param line
* @return
*/
private String getMsg(String line) {
return client.toString() + " says:" + line;
}

}

/**
* 该类用于创建发送数据的线程
*
* @author Faue
* @version 1.0.0
*/
class ClientMsgSendThread implements Runnable {

private Socket client;

private PrintWriter out;

private BufferedReader keyboardInput;

private StringBuffer outputStringBuffer = new StringBuffer("Hello");

/**
* 得到键盘的输入流
*
* @param s
* @throws IOException
*/
public ClientMsgSendThread(Socket s) throws IOException {
client = s;

out = new PrintWriter(client.getOutputStream(), true);
keyboardInput = new BufferedReader(new InputStreamReader(System.in));

}

public void run() {
try {

while (!client.isClosed()) {
outputStringBuffer.delete(0, outputStringBuffer.length());
outputStringBuffer.append(keyboardInput.readLine());

out.println(outputStringBuffer.toString());
}
out.println("--- See you, bye! ---");
} catch (IOException e) {
//e.printStackTrace();
System.out.println(client.toString() + " is closed!");
System.exit(0);
}
}

}

}

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!

vaela

阅读全文

与java8多线程股票数据下载相关的资料

热点内容
股票资金流入看什么 浏览:806
科创50指数ETf投资哪些股票 浏览:469
林园股市最新股票 浏览:525
国务院国有资产监督管理委员会股票 浏览:132
宜信最新股票价格 浏览:144
亚盛股票走势 浏览:450
工业设计软件概念股票 浏览:971
中国股票最高的是什么股 浏览:274
如何利用股东数据分析股票 浏览:155
同济科技股票配股价 浏览:219
股票短期融资债券到期兑付是好是坏 浏览:597
股票交通银行000001 浏览:811
债券比股票 浏览:518
中国软件这个股票怎么样 浏览:545
股票里的特殊账户 浏览:426
最准确的股票数据网 浏览:30
网商银行的股票代码 浏览:393
行业互动对股票市场有什么影响 浏览:555
必需品投资组合股票行情分析 浏览:621
股票看盘重要时间点 浏览:741