/*************************************** * 对象名称: SocketObj * 功能说明: 远程发送与接收 * 试用示例: * using EC; //引用空间名 * string url = "218.75.111.74"; // URL也可以是()这种形式 * int port = 8000; //端口 * string SendStr = "domainnamen"; //组织要发送的字符串 * SendStr += "checkn"; * SendStr += "entityname:domainsn"; * 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>URL或者:IP地址</param> /// <param></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></param> /// <param></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></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 } }
(编辑:焦作站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|