如何使用c#代码写出 向指定ip地址的机器发送信息?

解决方案 »

  1.   


    /*************************************** 
    * 对象名称: SocketObj 
    * 功能说明: 远程发送与接收 
    * 试用示例: 
    * using EC; //引用空间名 
    * string url = "218.75.111.74"; // URL也可以是(http://www.baidu.com/)这种形式 
    * int port = 8000; //端口 
    * string SendStr = "domainname\n"; //组织要发送的字符串 
    * SendStr += "check\n"; 
    * SendStr += "entityname:domains\n"; 
    * SendStr += "domainname:" + this.TextBox1.Text + "\n"; 
    * SendStr += ".\n"; 
    * EBSocketObj o = new SocketObj(); //创建新对象 
    * o.Connection(url, port); //打开远程端口 
    * o.Send(SendStr); //发送数据 
    * Response.Write(o.Recev()); //接收数据 
    * o.Dispose(); //销毁对象 
    **********************************************/ 
    using System; 
    using System.IO; 
    using System.Net; 
    using System.Net.Sockets; 
    using System.Text; 
    namespace EC 

    /// <summary> 
    /// Socket 远程发送与接收 
    /// </summary> 
    public class SocketObj 

    private NetworkStream ns; 
    private bool _alreadyDispose = false; 
    #region 构造与释构 
    public EBSocketObj() 

    // 
    // TODO: 在此处添加构造函数逻辑 
    // 

    public EBSocketObj(string url, int port) 

    Connection(url, port); 

    ~EBSocketObj() 

    Dispose(); 

    protected virtual void Dispose(bool isDisposing) 

    if (_alreadyDispose) return; 
    if (isDisposing) 

    if (ns != null) 

    try 

    ns.Close(); 

    catch (Exception E) { } 
    ns.Dispose(); 


    _alreadyDispose = true; 

    #endregion 
    #region IDisposable 成员 
    public void Dispose() 

    Dispose(true); 
    GC.SuppressFinalize(this); 

    #endregion 
    #region 打开端口 
    /// <summary> 
    /// 打开端口 
    /// </summary> 
    /// <param name="url">URL或者:IP地址</param> 
    /// <param name="port"></param> 
    /// <returns></returns> 
    public virtual void Connection(string url, int port) 

    if (url == null || url == "") return; 
    if (port < 0) return; 
    if (port.ToString()==string.Empty) port = 80; 
    TcpClient tcp = null; 
    try 

    tcp = new TcpClient(url, port); 

    catch (Exception E) 

    throw new Exception("Can't connection:" + url); 

    this.ns = tcp.GetStream(); 

    #endregion 
    #region 发送Socket 
    /// <summary> 
    /// 发送Socket 
    /// </summary> 
    /// <param name="ns"></param> 
    /// <param name="message"></param> 
    /// <returns></returns> 
    public virtual bool Send(string message) 

    if (ns == null) return false; 
    if (message == null || message == "") return false; 
    byte[] buf = Encoding.ASCII.GetBytes(message); 
    try 

    ns.Write(buf, 0, buf.Length); 

    catch (Exception E) 

    throw new Exception("Send Date Fail!"); 

    return true; 

    #endregion 
    #region 收取信息 
    /// <summary> 
    /// 收取信息 
    /// </summary> 
    /// <param name="ns"></param> 
    /// <returns></returns> 
    public string Recev() 

    if (ns == null) return null; 
    byte[] buf = new byte[4096]; 
    int length = 0; 
    try 

    length = ns.Read(buf, 0, buf.Length); 

    catch (Exception E) 

    throw new Exception("Receive data fail!"); 

    return Encoding.ASCII.GetString(buf, 0, length); 

    #endregion 
    }