Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#返回套接字对象_C#_Sockets_Network Programming - Fatal编程技术网

C#返回套接字对象

C#返回套接字对象,c#,sockets,network-programming,C#,Sockets,Network Programming,更新代码: public static Socket socketConnect() { while (true) { try { Socket sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); Console.WriteLine(

更新代码:

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

是的,我是新来的

现在,每当我想发送或接收socketConnect()时,我都会遇到新问题。发送或接收,然后程序再次执行socketConnect()方法,但我只想使用sck发送和接收
我做错了什么?

声明返回套接字的方法

public static Socket socketConnect()
而是
break

return sck;

您的sck对象位于堆上,因此返回后仍可以访问。

返回套接字而不是void?并对“while(true)”语句进行处理,这样会让您感到悲伤,特别是当你的“catch”不能让你脱离循环时。我还建议你删除while循环,尝试catch,让调用者处理它。这是客户端应用程序,我希望它每隔几秒钟重新连接一次,所以我使用while循环。有更好的方法吗?
,而(true)
在处理网络循环时相当惯用。我不认为这会造成任何痛苦,如果目标真的是永远尝试,那么你还有什么其他选择?我现在有一个新问题,我想使用sck发送或接收,所以我需要编写socketConnect()。发送,然后它返回并执行socketConnect()函数,但我只想使用sck发送或接收我做错了什么?