虽然思路简单,可是实现起来可真麻烦,因为要用到好多类来实现DNS解析,IP辨别,数据格式变换,解码等,比较烦呢
用到了System.Text.Encoding
System.Net.Dns
System.Net.Sockets.Socket
System.Net.IPHostEntry
System.Net.IPAddress
System.Net.IPEndPoint
..
是不是很麻烦?下面的代码运用Socket建立加接,然后朝目标计算机的指定端口发送GET请求,然后将请求返回的头256数据返回

using System;
using System.Net.Sockets;
using System.Net;
using System.Text;

namespace MyControl
{
    /**//// <summary>
    /// SocketTest 的摘要说明。
    /// </summary>
    public class SocketTest
    {
        public SocketTest()
        {
            //
            // TODO: 在此处添加构造函数逻辑
            //            
        }
        /**//// <summary>
        /// 连接SOCKET
        /// </summary>
        /// <param name="Server">服务器名</param>
        /// <param name="Port">端口</param>
        /// <returns></returns>
        private  Socket Connection(string Server,int Port)
        {
            Socket HttpSocket=null;
            IPHostEntry HostIp=null;
            HostIp=Dns.Resolve(Server);
            foreach(IPAddress TempIp in HostIp.AddressList)
            {
                IPEndPoint Iep=new IPEndPoint(TempIp,Port);
                Socket TempSocket=new Socket(Iep.AddressFamily,SocketType.Stream,ProtocolType.Tcp);
                TempSocket.Connect(Iep);
                if(TempSocket.Connected)
                {
                    HttpSocket=TempSocket;
                    break;
                }
                else
                {
                    continue;
                }
            }
            return(HttpSocket);
        }

        public string GetHomePageByeSocket(string Server,int Port)
        {
            string strHomePage=null;
            Encoding AscEncode=Encoding.ASCII;
            string strGetString="GET / HTTP/1.1\r\nHost: "+Server+"\r\nConnection: Close\r\n\r\n";
            Byte [] BtGetByte=AscEncode.GetBytes(strGetString);
            Byte [] BtRevByte=new Byte[256];

            Socket HttpSocket=Connection(Server,Port);
            if(HttpSocket==null)
            {
                return("Connection Fail!");
            }
            HttpSocket.Send(BtGetByte,BtGetByte.Length,SocketFlags.None);

            Int32 IntRevByte=HttpSocket.Receive(BtRevByte,BtRevByte.Length,SocketFlags.None);
            
            strHomePage+=AscEncode.GetString(BtRevByte,0,IntRevByte);
            return(strHomePage);
        }
    }
}

转载于:https://www.cnblogs.com/Heroman/archive/2004/12/02/71920.html

Socket,好像也挺简单,可是,真够烦相关推荐

  1. 好像还挺好玩的GAN重制版4——Pytorch搭建SRGAN平台进行图片超分辨率提升

    好像还挺好玩的GAN重制版4--Pytorch搭建SRGAN平台进行图片超分辨率提升 学习前言 源码下载地址 网络构建 一.什么是SRGAN 二.生成网络的构建 三.判别网络的构建 训练思路 一.判别 ...

  2. 简陋无比的 Python 抠图方案,好像还挺像回事儿?

    Python编程学习点击免费领取 背景介绍 从某APP中截取了我的背单词曲线之后,我敏锐地发现了蕴藏在其中的数学规律. 每六个月达到一次峰值,峰值的高度不断减小.为了在图上画一条线来拟合这个折线,我打 ...

  3. 好像还挺好玩的GAN重制版2——Keras搭建SRGAN平台进行图片超分辨率提升

    好像还挺好玩的GAN重制版2--Keras搭建SRGAN平台进行图片超分辨率提升 学习前言 源码下载地址 网络构建 一.什么是SRGAN 二.生成网络的构建 三.判别网络的构建 训练思路 一.判别器的 ...

  4. 使用Socket及ServerSocket创建简单的服务器

    使用Socket及ServerSocket创建简单的服务器 @(JAVA)[java] 参考自core java package com.lujinhong.corejava;import java. ...

  5. 利用socket.io+nodejs打造简单聊天室

    代码地址如下: http://www.demodashi.com/demo/11579.html 界面展示: 首先展示demo的结果界面,只是简单消息的发送和接收,包括发送文字和发送图片. ws说明: ...

  6. 好像还挺好玩的GAN8——SRGAN实现图像的分辨率提升

    好像还挺好玩的GAN8--SRGAN实现图像的分辨率提升 注意事项 学习前言 什么是SRGAN 代码与训练数据的下载 神经网络组成 1.生成网络 2.判别网络 训练思路 1.对判别模型进行训练 2.对 ...

  7. FX5UPLC的各种以太网通讯,SOCKET 2台PLC简单通讯 走网线

    FX5UPLC的各种以太网通讯,SOCKET 2台PLC简单通讯 走网线,SLMP协议通讯,JE-C控制伺服电机, MODBUS-RTU Modbus-TCP通讯等例子. 全部程序经过真实设备验证,按 ...

  8. 在网上购物竟然也能和Python扯上关系!电脑上用自己写的程序购物?别说,QT实现还真挺简单(Python如何利用QT制作电脑的手机版拼多多)

    拼多多现在也是越来越火了,但是不知道大家有没有发现,拼多多似乎一直不能通过网页进行访问.淘宝,京东都有微信客户端,那么怎么拼多多就没有呢?带着这个疑问,我特地去手机爬取了一下拼多多的客户端.(其实也不 ...

  9. 怪蛙带你通全栈 第8讲:电路设计之电路焊接(从这来看,焊接有焊锡膏挺简单的,涂上然后热风枪吹就可以了。)

    从这来看,焊接有焊锡膏挺简单的,涂上然后热风枪吹就可以了. 转载自:https://mp.weixin.qq.com/s/I_RjVYyBJJwkcwVPsXX1Kw 怪蛙带你通全栈 第8讲:电路设计 ...

  10. 浙江大学计算机考研学硕,真够“卷”的!浙江大学,计算机专业2021考研复试线399分?...

    文|学个习 原创文章,欢迎转发分享! 越来越"卷"的考研 浙江大学计算机专业学硕2021年考研复试线399分,不知道大家是什么感受? 反正,第一眼看到这个消息时确实有点不敢相信. ...

最新文章

  1. MobileSpace-关于我的激情的故事
  2. 7怎样设置禁网_怎样才能提升网站内页的收录?
  3. 插入排序(java版)
  4. CXF WebService 开发文档-目录索引
  5. python正则匹配空格+数字+空格_详解Python中正则匹配TAB及空格的小技巧
  6. mongodb 导出数据
  7. Python 文本挖掘:使用gensim进行文本相似度计算
  8. python调用cplex_python 调用cplex(设置 CPLEX 的 Python API)
  9. 六级病历对门诊电子病历系统功能要求的初步梳理
  10. android手机分辨率,xDpi,yDpi,尺寸等各种相关物理参数
  11. 【微信小程序】上传Word、txt、Excel、PPT等文件
  12. 液压比例阀放大器比例控制器比例阀放大板
  13. 计算机毕设结束语致谢,毕业设计结束语和致谢
  14. 总结5个比较好用的app开发工具
  15. 这3个今日头条常见的赚钱方法,掌握后,月入过万都不难
  16. docker启动容器发生Error response from daemon故障
  17. 2020.11.29-参加美国数学大联盟Math League初赛(二等奖)
  18. dwz ajax提交,DWZ-JUI Ajax.post 封装
  19. 使用ArchR分析单细胞ATAC-seq数据(第四章)
  20. 天弘基金回应在支付宝 “无故扣款”,客户可自行取消

热门文章

  1. a股用计算机模拟走势,一张图揭示抄底A股的机会在这里
  2. 关于CDN那些名词,你知道吗?
  3. 使用什么协议扫描服务器端口,服务器端口扫描
  4. hdu 3625 Examining the Rooms
  5. 物理-空间跳跃技术:空间跳跃技术
  6. hdu1024 最大m段和 划分dp
  7. Excel图表制作(二):动态图表制作
  8. 测试 这篇是拿来测试51ditu的OpenAPI的
  9. 邮件合并:将多条记录合并到一页
  10. 50个表单功能,验证,安全和自定义化的jQuery插件