Develop methods for Socket communication using c sharp

  • 2020-05-05 11:49:50
  • OfStack

The following example shows how to use the   Socket   class to send data and receive responses to the   HTTP   server.  

[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);  
}  
// if you want to close the connection immediately, call   s.Close ();  
return   strRetPage;  
}  

Related articles: