关于上一篇日志《TWS API 开发手记——连接到TWS平台》的修正
  
- UID
- 2
- 积分
- 2914403
- 威望
- 1407234 布
- 龙e币
- 1507169 刀
- 在线时间
- 13521 小时
- 注册时间
- 2009-12-3
- 最后登录
- 2025-3-3

|
关于上一篇日志《TWS API 开发手记——连接到TWS平台》的修正
上一篇日志中,提到利用C#做对TWS的链接,但是后来的测试中不确定是因为防火墙的原因还是其他什么原因,发现无法正常获取到数据,因此我又转到Linux平台上,重新用Java写了一遍,能正常获取数据。因此暂时决定以后这个内容全部换到Linux平台上,用Java进行实现。
Java代码的实现原理和C#的实现原理是一样的,你依然需要一台装了TWS的机器,以及可以连通到TWS的网路。因为TWS有支持Linux的版本,所以如果有条件的同学可以自己在Linux环境上搭建开发环境。
- public class TestConnection
- {
- public static void main(String args[]) throws Exception
- {
- EWrapperImpl wrapper = new EWrapperImpl();
- final EClientSocket m_client = wrapper.getClient();
- final EReaderSignal m_signal = wrapper.getSignal();
- //! [connect]
- m_client.eConnect("127.0.0.1", 7000, 0);
- //! [connect]
- //! [ereader]
- final EReader reader = new EReader(m_client, m_signal);
- reader.start();
- new Thread() {
- public void run() {
- while (m_client.isConnected()) {
- m_signal.waitForSignal();
- try {
- reader.processMsgs();
- } catch (Exception e) {
- System.out.println("Exception: "+e.getMessage());
- }
- }
- }
- }.start();
- //! [ereader]
- Thread.sleep(1000);
- // TODO ...
- Thread.sleep(100000);
- m_client.eDisconnect();
- }
- }
复制代码
基本结构还是一样的,你需要实现 EWrapper 这个类,并需要提供给main函数可以访问的EReaderSignal, EClientSocket这两个类,然后建立对TWS服务的访问,在TODO这部分,就是实现具体的业务逻辑,并需要在业务结束后,调用对clientSocket的eDisconnect命令,结束对TWS的请求服务。
大体上就是这么回事,因为前几个月一直打游戏去了,所以没来得及更新,但愿这个项目能一直做下去吧,这样就不会弃坑了。 |
论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
|
|
|
|
|
|