0

I'm trying to create an azure application which can recieve messages on a TCP port. I have configured an input endpoint shown below :

Endpoint Name:GPRSEndpoint
Type:Input
Protocol:TCP
Port:10000

My azure worker role code looks like this:-

TcpListener listener = new TcpListener(RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["GPRSEndpoint"].IPEndpoint);
        listener.ExclusiveAddressUse = false;
        listener.Start();

 while (true)
            {
                Thread.Sleep(100);
                if (listener.Pending())
                {
                    Trace.WriteLine("Incoming Request", "Information");
                    TcpClient c = listener.AcceptTcpClient();  //waiting for client to connect
                    Stream s = c.GetStream();
                    StreamReader sr = new StreamReader(s);
                    string text = sr.ReadLine();

                    if (text != null && text.Length > 0)
                    {
                        Trace.WriteLine("Saving GPRS Packets into Storage Table", "Information");
                        //Saving GPRS Packets into Storage Table
                        Site site = new Site();
                        site.GPRSPacket = text;
                        var insertOperation = TableOperation.Insert(site);
                        siteTable.Execute(insertOperation);
                    }
                    c.Close();
               }

               Trace.TraceInformation("Working", "Information");
            }
        }

And finally my client program looks like this:-

TcpClient c = new TcpClient();
            Console.WriteLine("\nConnecting to Azure...");

            IPAddress AzureWorkeraddress = IPAddress.Parse("168.63.239.54");
            //String AzureWorkeraddress = "http://clienttcpcloud.cloudapp.net/";
            //IPAddress AzureWorkeraddress = IPAddress.Parse("65.52.184.129");

            c.Connect(AzureWorkeraddress, 10000);  //Azure Worker Role's INPUT TCP Endpoint 168.63.239.54 or (http://clienttcpcloud.cloudapp.net/)
            Console.WriteLine("\n<<<<<<<<<<<<<<<<<<Server Connected>>>>>>>>>>>>>>>>>>\n");

            Console.WriteLine("Sending to Azure...");
            Stream s = c.GetStream();
            StreamWriter sw = new StreamWriter(s);
            sw.WriteLine(text);
            sw.Flush();
            Console.WriteLine("\n\nGPRS Packet Sent!!!");

            s.Close();
            c.Close();

I've tried changing the port number to several values, but it still fails to respond. The error that i get is:-

**A Connection failed because the connecting party did not properly respond after a period of time, or the established connection failed, because connected host failed to respond 168.63.239.54:10000**

I really don't know what the problem is.....

4

1 回答 1

0

http://blog.maartenballiauw.be/post/2010/01/17/Creating-an-external-facing-Azure-Worker-Role-endpoint.aspx有一个示例应用程序。您是否尝试过,并将它正在做的事情与您正在做的事情进行比较?

于 2013-08-03T05:22:25.297 回答