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 精简版的支持。 | 未指定的协议。 |
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"));
}
}
相关文章推荐
- SCTP 协议与SocketType.Seqpacket及微软关于sctp的支持
- Socket.IO:支持WebSocket协议、用于实时通信和跨平台的框架
- EnumForms 函数枚举指定打印机支持有所有页形.
- Swift 系统学习 30 枚举 结构体 类 遵循协议 protocol
- Socket.IO:支持WebSocket协议、用于实时通信和跨平台的框架
- Node.js与网络:Node.js对TCP、UDP、Socket、HTTP等协议的实现和支持
- Windows Media Player 无法播放此文件,因为不支持指定的协议,解决方法!
- 在C++ Builder中用socket api来写网络通讯程序(同时支持TCP和UDP协议)
- AddressFamily 枚举-----指定 Socket 类的实例可以使用的寻址方案
- iOS经典讲解之Swift枚举(Enum)、协议(protocol)、扩展(Extension)
- dubbo消费者没有指定protocol,服务器端支持dubbo和rest,结果一会走dubbo、一会走rest
- 【原】cocos2d-x 2.0.4 不支持https协议 CURLE_UNSUPPORTED_PROTOCOL
- Swift -- 结构体、类、枚举继承protocol协议
- 在C++ Builder中用socket api来写网络通讯程序(同时支持TCP和UDP协议)
- SocketType 枚举----指定 Socket 类的实例表示的套接字的类型
- 在C++ Builder中用socket api来写网络通讯程序(同时支持TCP和UDP协议)
- 在C++ Builder中用socket api来写网络通讯程序(同时支持TCP和UDP协议)(二)
- AddressFamily 枚举-----指定 Socket 类的实例可以使用的寻址方案
- SocketType 枚举----指定 Socket 类的实例表示的套接字的类型
- AddressFamily 枚举-----指定 Socket 类的实例可以使用的寻址方案