关于上一篇日志《TWS API 开发手记——连接到TWS平台》的修正

关于上一篇日志《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的请求服务。

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

猜你喜欢

转载自blog.csdn.net/poisonchry/article/details/76793678