更新代码:
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 我做错了什么?
答案 0 :(得分:2)
声明您的方法以返回Socket
public static Socket socketConnect()
而不是break
return sck;
你的sck对象在堆上,所以在返回它之后它仍然是可访问的。