日期:2014-05-18  浏览次数:20485 次

有没有办法让web页面通过socket连接(远程客户端) 访问服务器中的winform(服务器端)
如题

或者可否谈谈关于   网页发送   短信的实现方式

我们在移动公司的网站上,通过手机登陆进去后,只要输入短信息内容和接收号码,发送后对方就接收到短信.而我们的手机就扣费0.1元

大概的实现方式?



------解决方案--------------------
//远程主机
string hostName= "192.168.1.160 ";
//端口
int port= 9999;
//得到主机信息
IPHostEntry ipInfo=Dns.GetHostByName(hostName);
//取得IPAddress[]
IPAddress[] ipAddr=ipInfo.AddressList;
//得到ip
IPAddress ip=ipAddr[0];
//组合出远程终结点
IPEndPoint hostEP=new IPEndPoint(ip,port);

//创建Socket 实例
Socket socket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

try
{
//尝试连接
socket.Connect(hostEP);

}
catch(Exception se)
{
Response.Write( " "+se+ " ");
Response.End();
}

//发送给远程主机的请求内容串
string sendStr= "CONN┆ "+System.Guid.NewGuid().ToString();
//创建bytes字节数组以转换发送串
byte[] bytesSendStr=new byte[1024];
//将发送内容字符串转换成字节byte数组
bytesSendStr=Encoding.UTF8.GetBytes(sendStr);
try
{
//向主机发送请求
socket.Send(bytesSendStr,bytesSendStr.Length,0);
}
catch(Exception ce)
{
Response.Write( " "+ce+ " ");
Response.End();
}

//声明接收返回内容的字符串
string recvStr= " ";
//声明字节数组,一次接收数据的长度为1024字节
byte[] recvBytes=new byte[1024];
//返回实际接收内容的字节数
int bytes=0;
//循环读取,直到接收完所有数据
bytes=socket.Receive(recvBytes,recvBytes.Length,0);
recvStr = Encoding.UTF8.GetString(recvBytes,0,bytes).Replace( "\0 ", " <br> ").Replace( "LIST┆ ", " ");

Response.Write( " "+recvStr+ " ");
Response.End();


//禁用Socket
socket.Shutdown(SocketShutdown.Both);
//关闭Socket
socket.Close();
------解决方案--------------------
分两步
1 买个网关程序
2 给移动老总送辆车

如果2能够做的牛 1 就省了
------解决方案--------------------
可以发送也可以接收,但是有一个问题,就是接收服务器返回的数据时,数据在后台监听到,但不能处理,有点像winform里的线程控制一样,一个线程没有权限控制页面的内容
------解决方案--------------------
你说的这个问题不就是一个简单的WEB程序吗?在网页上输入信息,然后提交到后台,至于后台怎么处理不都可以吗,你想连接谁,想发什么短信,你就随便做啊,谁管你啊?这有什么难的?

不过你别告诉我你要控制移动的后台,办你自己的事。