问题是这样的:
asp.net 的 webform是客户端,我要在客户端的数据post到服务器端winform.
winform会做出相关的处理,服务器是这样处理的:把事件触发的一些结果写入文本文件
(有想法是可以不用写入文件而直接返回客户端,但我做不到!会的朋友请告诉我,谢谢),然后把文本文件的内容
返回到客户端。客户端接收到数据并打印在页上。这样 我用了socket了 但是一直没有成功啊!
各位朋友,请帮帮忙吧,谢谢先了。
asp.net 的 webform是客户端,我要在客户端的数据post到服务器端winform.
winform会做出相关的处理,服务器是这样处理的:把事件触发的一些结果写入文本文件
(有想法是可以不用写入文件而直接返回客户端,但我做不到!会的朋友请告诉我,谢谢),然后把文本文件的内容
返回到客户端。客户端接收到数据并打印在页上。这样 我用了socket了 但是一直没有成功啊!
各位朋友,请帮帮忙吧,谢谢先了。
webform是客户端??
winform是服务器端?
这样通讯的方法,我想到有两个办法。如果对数据的实时性要求不高,可以利用msmq或者数据库来中转,不然就用socket,下面是调试成功的部分代码:win form服务端:
string strHostName = Dns.GetHostName();
IPHostEntry ipHostEntry = Dns.GetHostEntry(strHostName);
IPEndPoint localEndPoint = new IPEndPoint(ipHostEntry.AddressList[0], 12345);//假设监听12345端口
Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
Socket receiver = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); listener.Bind(localEndPoint);
listener.Listen(1); string message = "";
while (message != "finish")
{
receiver = listener.Accept();
byte[] buffer = new byte[2000];
int length = receiver.Receive(buffer);//这里假设从web form来的消息很短,一次就可以接收完,如果比较长,可以把buffer的长度设的大一些,或者用循环的方法
message = Encoding.ASCII.GetString(buffer, 0, length);
}
web form:
IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 12345);
Socket receiver = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
receiver.Connect(remoteEndPoint);
if (receiver.Connected)
{
byte[] buffer;
buffer = Encoding.ASCII.GetBytes("abcde");//要发送的内容
receiver.Send(buffer);
}
用web service做服务器端,引用业务逻辑类库。
,例如 SpVoice vox = new SpVoiceClass();
然后委托:vox.Viseme += new _ISpeechVoiceEvents_VisemeEventHandler(vox_Viseme); //
vox.Word += new _ISpeechVoiceEvents_WordEventHandler(vox_Word);这两个是无法触发出来的啊,微软的一个专家说了 microsoft speech sdk 是基于COM 的程序的 asp.net没有消息循环机制,不会触发出来。我想要这个结果 我只能这样选择用winform做服务器啦。
我也想过用web service 但是怎么用,获得触发结果,更难啊!各路朋友 请教啦。
这是个弥天大误解!asp.net程序永远工作在web服务器端,它只是在客户端请求时返回html字符串而已。
winform服务端啊大哥们!!!请问 还有哪里不清楚哦!!!!
不用客HTTP、SOCKET
但是你要用post,那你的winform首先需要是一个web服务器。