视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Socket类使用
2025-09-28 02:18:31 责编:小OO
文档
Socket类的使用

private static Socket ConnectSocket(string server, int port)

        {

            Socket socket = null;                    //实例化Socket对象,并初始化为空

            IPHostEntry iphostentry = null;          //实例化IPHostEntry对象,并初始化为空

            iphostentry = Dns.GetHostEntry(server);  //获得主机信息

            //循环遍历得到的IP地址列表

            foreach (IPAddress address in iphostentry.AddressList)

            {

                //使用指定的IP地址和端口号实例化IPEndPoint对象

                IPEndPoint IPEPoint = new IPEndPoint(address, port);

                //使用Socket的构造函数实例化一个Socket对象,以便用来连接远程主机

                Socket newSocket = new Socket(IPEPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

                newSocket.Connect(IPEPoint);          //调用Connect方法连接远程主机

                if (newSocket.Connected)              //判断远程连接是否连接

                {

                    socket = newSocket;

                    break;

                }

                else

                {

                    continue;

                }

            }

            return socket;

        }

        //获取指定服务器的主页面内容

        private static string SocketSendReceive(string server, int port)

        {

            string request = "GET/HTTP/1.1\\n主机:" + server + "\\n连接:关闭\\n";

            Byte[] btSend = Encoding.ASCII.GetBytes(request);

            Byte[] btReceived = new Byte[256];

            //调用自定义方法ConnectSocket,使用指定的服务器名和端口号实例化一个Socket对象

            Socket socket = ConnectSocket(server, port);

            if (socket == null)

                return ("连接失败!");

            //将请求发送到连接的服务器

            socket.Send(btSend, btSend.Length, 0);

            int intContent = 0;

            string strContent = server + "上的默认页面内容:\\n";

            do

            {

                //从绑定的Socket接收数据

                intContent = socket.Receive(btReceived, btReceived.Length, 0);

                //将接收到的数据转换为字符串类型

                strContent += Encoding.ASCII.GetString(btReceived, 0, intContent);

            }

while (intContent > 0);

            return strContent;

        }

        private void button1_Click(object sender, EventArgs e)

        {

            string server = textBox1.Text;               //指定主机名

            int port = Convert.ToInt32(textBox2.Text);   //指定端口号

            //调用自定义方法SocketSendReceive获取指定主机的主页面内容

            string strContent = SocketSendReceive(server, port);

            MessageBox.Show(strContent);

        }下载本文

显示全文
专题