Board logo

标题: 关于上一篇日志《TWS API 开发手记——连接到TWS平台》的修正 [打印本页]

作者: 龙听    时间: 2018-3-27 09:58     标题: 关于上一篇日志《TWS API 开发手记——连接到TWS平台》的修正

上一篇日志中,提到利用C#做对TWS的链接,但是后来的测试中不确定是因为防火墙的原因还是其他什么原因,发现无法正常获取到数据,因此我又转到Linux平台上,重新用Java写了一遍,能正常获取数据。因此暂时决定以后这个内容全部换到Linux平台上,用Java进行实现。

Java代码的实现原理和C#的实现原理是一样的,你依然需要一台装了TWS的机器,以及可以连通到TWS的网路。因为TWS有支持Linux的版本,所以如果有条件的同学可以自己在Linux环境上搭建开发环境。

  1. public class TestConnection
  2. {
  3.     public static void main(String args[]) throws Exception
  4.     {
  5.         EWrapperImpl wrapper = new EWrapperImpl();

  6.         final EClientSocket m_client = wrapper.getClient();
  7.         final EReaderSignal m_signal = wrapper.getSignal();
  8.         //! [connect]
  9.         m_client.eConnect("127.0.0.1", 7000, 0);
  10.         //! [connect]
  11.         //! [ereader]
  12.         final EReader reader = new EReader(m_client, m_signal);        
  13.         reader.start();        
  14.         new Thread() {
  15.             public void run() {
  16.                 while (m_client.isConnected()) {
  17.                     m_signal.waitForSignal();
  18.                     try {
  19.                         reader.processMsgs();
  20.                     } catch (Exception e) {
  21.                         System.out.println("Exception: "+e.getMessage());
  22.                     }
  23.                 }
  24.             }
  25.         }.start();
  26.         //! [ereader]
  27.         Thread.sleep(1000);

  28.         // TODO ...

  29.         Thread.sleep(100000);
  30.         m_client.eDisconnect();
  31.     }
  32. }
复制代码



基本结构还是一样的,你需要实现 EWrapper 这个类,并需要提供给main函数可以访问的EReaderSignal, EClientSocket这两个类,然后建立对TWS服务的访问,在TODO这部分,就是实现具体的业务逻辑,并需要在业务结束后,调用对clientSocket的eDisconnect命令,结束对TWS的请求服务。

大体上就是这么回事,因为前几个月一直打游戏去了,所以没来得及更新,但愿这个项目能一直做下去吧,这样就不会弃坑了。




欢迎光临 龙听期货论坛 (http://www.qhlt.cn/) Powered by Discuz! 7.2