Asp.net Socket 客户端(发送和接收数据 )_[Asp.Net教程]                                           					//############################################ 
版权声明: 
文章内容为本站编辑,创作.你可以任意转载、发布、使用但请务必明文标注文章原始出处及本声明 
http://www.opent.cn 作者:浪淘沙 
############################################/ 
/*************************************** 
* 对象名称: SocketObj 
* 功能说明: 远程发送与接收 
* 试用示例: 
* using EC; //引用空间名 
* string url = "218.75.111.74"; // URL也可以是(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 
{ 
/// 
 
/// Socket 远程发送与接收 
///  public class SocketObj 
{ 
private NetworkStream ns; 
private bool _alreadyDispose = false; 
#region 构造与释构 
public EBSocketObj() 
{ 
// 
// TOD 在此处添加构造函数逻辑 
// 
} 
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 打开端口 
/// 
 
/// 打开端口 
///  /// 
URL或者:IP地址 
/// 
 /// 
 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 
/// 
 
/// 发送Socket 
///  /// 
 /// 
 /// 
 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 收取信息 
/// 
 
/// 收取信息 
///  /// 
 /// 
 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 Socket 客户端(发送和接收数据 )