2012-10-11 2 views
-1

Azure에서 간단한 클라이언트 - 서버를 만들려고합니다. 하나의 webrole에 클라이언트가 있고 다른 서버에 서버가 있고 두 가지는 모두 동일한 임차인에 속해 있습니다. 클라이언트와 서버 사이에 더미 파일을 보내기 위해 두 소켓 사이의 간단한 소켓 통신을 사용하고자합니다. 각 역할에 대한Azure에서 WebRole 간 통신을위한 소켓 통신

1 정의 "내부"TCP 엔드 포인트 : 여기

내가 내 응용 프로그램 (명확성을 위해 제거 몇 가지 코드)를 작성하는 방법입니다. 나는 다음을 수행하는 서버에서

byte[] buffer = File.ReadAllBytes(filePath); 
mSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP); 
mSocket.Connect(IPAddress.Parse(serverIPString), 9000); 
mSocket.Send(buffer); 

3 : 가정 서버의 포트는 9000 클라이언트의 포트는 다음과 같이 클라이언트가 서버에 더미 파일을 전송 9010

2입니다

IPEndPoint ipEnd = new IPEndPoint(IPAddress.Any, 9000); 
mSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP); 
mSocket.Bind(ipEnd); 
mSocket.Listen(BACKLOG); 
Socket socket = mSocket.Accept(); 
byte[] buffer = new byte[BUFFER_SIZE]; 
int byteCount = socket.Receive(buffer); 

모든 것이 푸른 에뮬레이터에서 로컬 잘 작동하지만 클라우드로 갈 때 서버는 :(

이 도와주세요 어떤 연결을하지 않습니다!

부록 :

누군가 내 끝점을 어떻게 찾았습니까? 다음과 같이 서버의 기본 페이지에 내 끝점을 표시하고 보낸 사람/클라이언트가 텍스트 상자에서 파일을 보내려는 IP를 지정하게합니다.

foreach (var instance in RoleEnvironment.CurrentRoleInstance.Role.Instances) 
      foreach (KeyValuePair<string, RoleInstanceEndpoint> pair in instance.InstanceEndpoints) 
       addresses += "[" + pair.Key + "] " + pair.Value.IPEndpoint.Address + ":" + pair.Value.IPEndpoint.Port + ", "; 
+1

"아무 것도 작동하지 않습니다."는 실제로 불특정합니다. 예외가있는 경우 그 사실을 알려주십시오. 서버 측 또는 클라이언트에 있습니까? 또한,'serverIPString'이 어디서 왔는지 보여 주면 도움이 될 것입니다. (내부 엔드 포인트를 찾는 코드는 어디에 있습니까?) – smarx

+0

혼란을 가져 주어서 죄송합니다. 아니 거기에 아무런 예외 (언급했듯이, 그것은 로컬로 잘 작동). 서버는 발신자/클라이언트로부터 어떤 연결도받지 못합니다. – Hajjat

+0

또한 부록의 끝점에 대한 설명을 추가했습니다. 감사! – Hajjat

답변

0

서버가 연결을 기다리는 루프에 있어야합니다. 샘플 코드를 요약했는지, 아니면 누락 된 부분인지 만 잘 모르겠습니다. Socket 인터페이스의 사용은 조작을 호출하는 순서만큼 정확합니다.

희망이 http://msdn.microsoft.com/en-us/library/6y0e13d3.aspx

부록을하는 데 도움이 : 신경 끄시 고, 그냥 Socket.Accept을 발견() 그래서 내가 그것을보고 때 생각했던 문제가 안 일시 중단합니다.

+0

예, 저는 그것을 반복합니다. 귀하의 회신에 감사드립니다. – Hajjat

0

이것은 방화벽이나 코드가 IP를 인식하지 못하고 통신을 허용하지 않는 것과 같은 네트워크/IP 문제 일 수 있습니다.

+0

이것은 내가 기대했던 것입니다. 누군가가 똑같은 문제에 부딪쳤고 이것에 대한 해결책을 발견하면, 그것은 나를 죽이고 있습니다. 어쨌든 고마워요! – Hajjat