这段时间开始学习socket编程。
先从掌握基础知识开始,照着帮助写了一个访问指定域名首页的windos程序。界面包括两个textbox和一个按钮,textbox2输入域名,而textbox1为读取的首页的内容。button1的click事件,完成读取操作。
private void button1_Click(object sender, EventArgs e)
{
string strIp = textBox2.Text;
int port=80;//默认端口80
IPHostEntry iph= Dns.GetHostByName(strIp);//解析域名
Socket sk = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//实例化一个socket
IPEndPoint ip = new IPEndPoint(iph.AddressList[0].Address, port);
sk.Connect(ip);//连接
string strpost="GET / HTTP/1.1/r/nHost: " + textBox2.Text + "/r/nConnection: Close/r/n/r/n";
byte[] byt= new byte[256];
byte[] bytget = System.Text.ASCIIEncoding.ASCII.GetBytes(strpost);
sk.Send(bytget,bytget.Length,0);//发送
Int32 intrevlen = sk.Receive(byt, byt.Length, 0); //接收
string strrevHtml = System.Text.ASCIIEncoding.UTF8.GetString(byt,0,intrevlen);
while (intrevlen > 0)
{
intrevlen= sk.Receive(byt, byt.Length, 0);
strrevHtml = strrevHtml + System.Text.ASCIIEncoding.UTF8.GetString(byt, 0, intrevlen);
}
sk.Close();
textBox1.Text = strrevHtml;
}
很简单的例子。