[ASP.NET]使用C#开发Socket通讯

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

下面的示例显示如何使用 Socket 类向 HTTP 服务器发送数据和接收响应。

[C#]

public string DoSocketGet(string server)

{

//Sets up variables and a 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 the first IPAddress in the list using DNS.

IPAddress hostadd = Dns.Resolve(server).AddressList[0];

IPEndPoint EPhost = new IPEndPoint(hostadd, 80);

//Creates the Socket for sending data over TCP.

Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream,

ProtocolType.Tcp );

// Connects to the host using IPEndPoint.

s.Connect(EPhost);

if (!s.Connected)

{

strRetPage = "Unable to connect to host";

return strRetPage;

}

// Sends the GET text to the host.

s.Send(ByteGet, ByteGet.Length, SocketFlags.None);

// Receives the page, looping until all bytes are 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, SocketFlags.None);

strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);

}

//如果想立即关闭连接则调用 s.Close();

return strRetPage;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航