对任何可以提供帮助的人,
我正在停止连接测试服务器的节目问题。
我的TCP / IP连接是通过以下方式建立的:
Socket _socket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
我通过以下方式将连接消息发送到服务器:
_socket.Send(_txData);
其中_txData是使用连接请求消息初始化的byte [] _txData数组:
8 = FIX.4.4 \ 0019 = 121 \ 00135 = A \ 00149 = NotRealSenderID \ 0 0156 = NotRealTargetID \ 00134 = 1 \ 00152 = 20140522-20:12:04.392 \ 00198 = 0 \ 001108 = 30 \ 001554 = NotRealPassw ord \ 00110 = 017 \ 001转换为字节数组。
我通过以下方式等待登录成功消息:
int responseCount = _socket.Receive(_rxBuffer);
但几秒钟后,_socket.Receive解除阻塞并返回零字节,表明连接不成功。
我做错了什么?
我的登录信息有问题吗?这是我建立服务器连接的方式吗?我不知所措!
目前,我的默认Windows 7防火墙已被禁用,我尝试远程登录到服务器,下面的图像将结果快照:
任何帮助都将受到赞赏,因为这对我来说是一个主要的阻碍。
感谢。
答案 0 :(得分:0)
什么是测试服务器" ?
你可以ping它吗?
从该telnet会话的外观来看,您无权建立连接,或者目的地没有任何内容正在运行。
答案 1 :(得分:0)
我设法解决了这个问题。问题在于我的消息中的SOH字符。
我使用字面SOH =“\ 001”转换为一个字节,当我应该这样做:SOH =(char)0x1; DUH !!
为了记录,我使用以下工具来“调试”这个问题:
Wireshark将显示过滤器和捕获过滤器设置为主机服务器的IP地址,使用MINI-FIX生成FIX消息并将其传输到主机服务器。
然后我将客户端的输出与MINI-FIX通过Wireshark生成的输出进行了比较。我没有花太多时间从那里发现错误。