2014-05-22 1 views
0

도와 드릴 수있는 사람에게고정 프로토콜 4.4 로그인에 응답하지 않는 연결

테스트 서버에 연결하는 중 표시 중지 문제가 발생합니다.

내 TCP/IP 연결을 통해 설립 = 새로운 소켓

소켓 _socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

_socket.Send (_txData) :

나는 통해 서버에 연결 메시지를 보내 _txData가

바이트 [상기 접속 요청 메시지로 초기화 _txData 배열 :

8 = FIX.4.4 \ 0,019 = 121 \ 00,135 = A \ 00,149 = NotRealSenderID \ 0 0,156 = NotRealTargetID \ 00,134 = 1 \ 00152 = 20140522-20 : 12 : 04.392 \ 00198 = 0 \ 001108 = 30 \ 001554 = NotRealPassw \ 00110 = 017 \ 001은 바이트 배열로 변환됩니다. 내가 통해 로그인 성공 메시지를 기다리는

:

INT responseCount = _socket.Receive (_rxBuffer);

그러나 _socket.Receive는 차단을 해제하고 0 바이트를 반환하여 연결 실패를 알립니다.

내가 뭘 잘못하고 있니?

내 로그인 메시지에 문제가 있습니까? 서버 연결을 설정하는 방법입니까? 나는 손실에있다!

현재 내 기본 Windows 7 방화벽이 비활성화되어, 나는 서버에 텔넷을 시도, 아래 이미지는 결과 스냅 샷 : 이것은을 한,

enter image description here

어떤 도움이 평가됩니다 나를위한 주요 쇼 스토퍼.

감사합니다.

답변

0

이 문제를 해결할 수있었습니다. 문제는 내 메시지의 SOH 문자 때문이었습니다.

리터럴 SOH = "\ 001"을 바이트로 변환하여 사용했을 때 : SOH = (char) 0x1; DUH !! 생성에 FIX 메시지를 전송하는 디스플레이 필터와 호스트 서버의 IP 주소로 설정 캡처 필터 및 MINI-FIX와

와이어 샤크 : 공식적으로

, 나는이 문제를 '디버깅'에 다음과 같은 도구를 사용 호스트 서버.

그런 다음 내 클라이언트의 출력을 Wireshark를 통해 MINI-FIX에서 생성 된 출력과 비교했습니다. 거기에서 오류를 발견하는 데 오랜 시간이 걸리지 않았습니다.

+0

텔넷에'0x1' SOH를 입력하는 방법은 무엇입니까? – TangMonk

+0

\ x를 바이트의 시작 부분에 추가합니다. 예 : "\ x01". – guerillacodester

+0

SOH를 \ x01로 바꿉니 까? 이렇게하면? 8 = FIX.4.4 \ x019 = 103 \ x0135 = A1400 \ x0156 = XCD1 \ x0134 = 240 \ x0152 = 20171009-03 : 26 : 20 \ x0198 = 0 \ x01108 = 30 \ x01553 = primexm_hgnh_uat_1_q \ x01554 = tVN84Y93THc5 \ x0110 = 253 \ x01'가 작동하지 않는 것 같습니다. – TangMonk

0

"테스트 서버"란 무엇입니까?
핑 (ping) 할 수 있습니까?

텔넷 세션의 모양에서 연결 권한이 없거나 대상에서 실행중인 항목이 없습니다.

+0

문제가 해결되었습니다.위를보십시오. 도와 줘서 고마워. – guerillacodester

관련 문제