时间:2013-8-28 作者:悬浮的青春 分类: .net相关
一般webservice通信都是web与web之间的。和cs直接用webservice通信的比较少。cs通信就用socket了。
但是有这样的需求就得用
cs调用webservice很容易。实例化。然后调用实例化后的东西里面的方法就行了。
但是反过来呢。
通过webservice调用cs中的方法和实体呢。
这个就有点那个了。
一般都是反过来的。这下却是反其道而行之的。
于是有了下面不成熟的想法
做个webservice调用socket。socket来触发cs中的方法。。。虽然有点无耻。但是实现了。。哈哈
下面就直接贴代码吧。。不多说了。。会的都知道很简单的。。
webservice部分的代码
public Socket newclient;
[WebMethod]
public string ceshi(string ip, string Port, string Content)
{
byte[] data = new byte[102400];
newclient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
string ipadd = ip;
int port = Convert.ToInt32(Port);
IPEndPoint ie = new IPEndPoint(IPAddress.Parse(ipadd), port);
newclient.Connect(ie);
data = Encoding.UTF8.GetBytes(Content);
int i = newclient.Send(data);
return "success";
}
cs部分接收信息的代码
其实就是一个socket服务端的代码。。。
只写点关键的吧
Socket myClientSocket = (Socket)clientSocket;
int receiveNumber = myClientSocket.Receive(result);
Console.WriteLine("接收客户端{0}消息{1}", myClientSocket.RemoteEndPoint.ToString(), Encoding.UTF8.GetString(result, 0, receiveNumber));
somethings()//自己的方法,里面可以加你要的传来的参数啥的。判断执行。