2012-10-08 5 views
0

소켓을 통해 Iso8583 메시지를 보내려고하지만 사용했던 코드가 멈춰있는 것처럼 보입니다!소켓을 통해 Iso8583 메시지를 보내십시오 #

string NewISOmsg = iso8583.Build(DE, MTI); 

// Send Message 
byte[] data = new byte[1024]; 
IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("66.147.172.198"), 6181); 
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); 
data = Encoding.ASCII.GetBytes(NewISOmsg); 
server.SendTo(data, data.Length, SocketFlags.None, ipep); 
IPEndPoint theSender = new IPEndPoint(IPAddress.Parse("66.147.172.198"), 6181); 
EndPoint tmpRemote = (EndPoint)theSender; 
int recv = server.ReceiveFrom(data, ref tmpRemote); 
string ourResponse = tmpRemote.ToString(); 
server.Close();    

// Output response 
Response.Write(ourResponse);     

무엇이 누락 되었습니까? 감사합니다, 벤 나에게

+0

보내려는 장치에서 회신을 보내고 있습니까? 또한 UDP를 통한 프로토콜의 경우 이와 같이 코딩하는 것은 좋지 않습니다. 응답이 끊어지면 코드가 영원히 기다릴 것입니다. –

+0

그게 무슨 소리 야? 응답을 멈추는 것처럼? 아니면 다른 끝에서 아무것도 나오지 않습니까? – kolossus

답변

2

는 당신이이 개 같은 엔드 포인트 연결,

하나는 쓰기와 읽기 새, 기본적으로 2 개 세션을 시작을 열 것으로 보인다.

엔드 포인트는 첫 번째 연결에서 응답을 보내려고하므로 새로운 두 번째 연결이 아닌 첫 번째 연결에서 읽어야합니다.

+0

도움을 주셔서 감사합니다 ... 올바르게 수행하는 방법에 대한 예제가있는 도움말 사이트가 있습니까? 나는 이걸 가지고 내 경험의 한계에 다다를거야. ;-) –

+0

@BenDrury 여러분이 선택한 언어와 아마도 동시 프로그래밍에 대해서 (BSD) 소켓 프로그래밍에 관한 좋은 가이드를 선택하는 것이 좋습니다. – moosaka

관련 문제