C#返回Socket对象

时间:2014-04-22 17:04:45

标签: c# sockets network-programming

更新代码:

public static Socket socketConnect()
    {
        while (true)
        {
            try
            {
                Socket sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                Console.WriteLine(sck.Connected.ToString());
                IPEndPoint connectAddress = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8000); // Server IP & PORT 
                sck.Connect(connectAddress);
                Console.WriteLine(sck.Connected.ToString());
                if (sck.Connected == true)
                {
                    return sck
                }


            }
            catch (Exception ex)
            {

                System.Threading.Thread.Sleep(1000); // Sleep time before reconnect
            }


        }

我怎么能在这种方法之外使用sck?

例如我想检查main是否sck.Connected为true或false

是的我是c#中的新人。

现在每次我想发送或重新编写socketConnect()。send或recv然后程序再次执行socketConnect()方法我有新问题但我只想使用sck发送和recv 我做错了什么?

1 个答案:

答案 0 :(得分:2)

声明您的方法以返回Socket

public static Socket socketConnect()

而不是break

return sck;

你的sck对象在堆上,所以在返回它之后它仍然是可访问的。