http://blog.csdn.net/shaily/article/details/4230005
我照这个来做了个WEB页面。可以连接到 主机的端口。。端口也受到信息了。
但是每次发送信息
Send()
SOCKET连接都要重置
怎么解决啊??????*************************************** 
* 对象名称: 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 
}