Asp.net Socket客户端(远程发送和接收数据)
Asp.net Socket客户端(远程发送和接收数据)
发布时间:2016-12-29 来源:查字典编辑
摘要:复制代码代码如下:/****************************************对象名称:SocketObj*功能说明:...

复制代码 代码如下:

/***************************************

* 对象名称: SocketObj

* 功能说明: 远程发送与接收

* 试用示例:

* using EC; //引用空间名

* string url = "218.75.111.74"; // URL也可以是(http://www.baidu.com/)这种形式

* 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 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

}

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新asp.net教程学习
热门asp.net教程学习
编程开发子分类