【发布时间】:2016-04-07 04:14:10
【问题描述】:
我想在使用之前检查我列表中的代理是否正常工作,可以吗?
HTTP/HTTPS 很容易,因为你只需要使用 webclient 而不是 socks?
我认为这对所有人都有效
public static bool SoketConnect(string addresse)
{
string[] proxy = addresse.Split(':');
if (proxy.Count() == 2)
{
string host = proxy[0];
int port = Convert.ToInt32(proxy[1]);
var is_success = false;
try
{
var connsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
connsock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 200);
System.Threading.Thread.Sleep(500);
var hip = IPAddress.Parse(host);
var ipep = new IPEndPoint(hip, port);
connsock.Connect(ipep);
try
{
byte[] outStream = System.Text.Encoding.ASCII.GetBytes("ping");
byte[] inStream = new byte[100];
connsock.Send(outStream);
connsock.ReceiveTimeout = 500;
connsock.Receive(inStream);
string message = System.Text.Encoding.ASCII.GetString(inStream);
foreach (var bytes in inStream)
{
if (bytes != 0)
{
is_success = true;
break;
}
}
connsock.Disconnect(false);
}
catch(Exception ex)
{
is_success = false;
}
connsock.Close();
}
catch (Exception ex)
{
is_success = false;
}
return is_success;
}
else
return false;
}
但我总是遇到异常
"底层连接已关闭:连接已关闭 意外。” System.Net.WebException
tldr;如何检查我的 socks 代理是否正常工作(回到如何使用 socks 代理)
编辑:仍然没有帮助,需要答案 EDIT2:只 ping 代理不是正确的做法
【问题讨论】:
标签: c# http testing proxy socks