您的位置:首页 > 其它

ProtocolType 枚举----指定 Socket 类支持的协议

2006-02-13 11:50 381 查看
成员名称说明
Ggp
受 .NET Framework 精简版的支持。

网关到网关协议。
Icmp
受 .NET Framework 精简版的支持。

网际消息控制协议。
Idp
受 .NET Framework 精简版的支持。

IDP 协议。
Igmp
受 .NET Framework 精简版的支持。

网际组管理协议。
IP
受 .NET Framework 精简版的支持。

网际协议。
IPv6网际协议 v6。
Ipx
受 .NET Framework 精简版的支持。

IPX 协议。
ND
受 .NET Framework 精简版的支持。

网络磁盘协议(非正式)。
Pup
受 .NET Framework 精简版的支持。

PUP 协议。
Raw
受 .NET Framework 精简版的支持。

原始 UP 包协议。
Spx
受 .NET Framework 精简版的支持。

SPX 协议。
SpxII
受 .NET Framework 精简版的支持。

SPX 版本 2 协议。
Tcp
受 .NET Framework 精简版的支持。

传输控制协议。
Udp
受 .NET Framework 精简版的支持。

用户数据文报协议。
Unknown
受 .NET Framework 精简版的支持。

未知协议。
Unspecified
受 .NET Framework 精简版的支持。

未指定的协议。
如何使用 ProtocolType 来实例化Socket

using System;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;

public class Sample
{

public static string DoSocketGet(string server)
{
//Set up variables and String to write to the server.
Encoding ASCII = Encoding.ASCII;
string Get = "GET / HTTP/1.1\r\nHost: " + server +
"\r\nConnection: Close\r\n\r\n";
Byte[] ByteGet = ASCII.GetBytes(Get);
Byte[] RecvBytes = new Byte[256];
String strRetPage = null;

// IPAddress and IPEndPoint represent the endpoint that will
// receive the request.
// Get first IPAddress in list return by DNS.

try
{

// Define those variables to be evaluated in the next for loop and
// then used to connect to the server. These variables are defined
// outside the for loop to make them accessible there after.
Socket s = null;
IPEndPoint hostEndPoint;
IPAddress hostAddress = null;
int conPort = 80;

// Get DNS host information.
IPHostEntry hostInfo = Dns.Resolve(server);
// Get the DNS IP addresses associated with the host.
IPAddress[] IPaddresses = hostInfo.AddressList;

// Evaluate the socket and receiving host IPAddress and IPEndPoint.
for (int index=0; index<IPaddresses.Length; index++)
{
hostAddress = IPaddresses[index];
hostEndPoint = new IPEndPoint(hostAddress, conPort);

// Creates the Socket to send data over a TCP connection.
s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp );

// Connect to the host using its IPEndPoint.
s.Connect(hostEndPoint);

if (!s.Connected)
{
// Connection failed, try next IPaddress.
strRetPage = "Unable to connect to host";
s = null;
continue;
}

// Sent the GET request to the host.
s.Send(ByteGet, ByteGet.Length, 0);

} // End of the for loop.

// Receive the host home page content and loop until all the data is received.
Int32 bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
strRetPage = "Default HTML page on " + server + ":\r\n";
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);

while (bytes > 0)
{
bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
}

} // End of the try block.

catch(SocketException e)
{
Console.WriteLine("SocketException caught!!!");
Console.WriteLine("Source : " + e.Source);
Console.WriteLine("Message : " + e.Message);
}
catch(ArgumentNullException e)
{
Console.WriteLine("ArgumentNullException caught!!!");
Console.WriteLine("Source : " + e.Source);
Console.WriteLine("Message : " + e.Message);
}
catch(NullReferenceException e)
{
Console.WriteLine("NullReferenceException caught!!!");
Console.WriteLine("Source : " + e.Source);
Console.WriteLine("Message : " + e.Message);
}
catch(Exception e)
{
Console.WriteLine("Exception caught!!!");
Console.WriteLine("Source : " + e.Source);
Console.WriteLine("Message : " + e.Message);
}

return strRetPage;

}
public static void Main()
{
Console.WriteLine(DoSocketGet("localhost"));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐