客户端如何调用服务器中的方法
本文关键字:服务器 方法 调用 何调用 客户端 | 更新日期: 2023-09-27 18:30:37
我只是在学习如何使用TCP客户端服务器关系。我一直在寻找几个小时,但我没有看到客户端可以从用户那里获取输入的任何方法,然后客户端向服务器发送一个 byte[] 数组并让它做任何事情,除了比较字符串,有没有办法让它调用带有此输入的方法?还是我错过了什么?
我听说过一种叫做序列化的东西,虽然似乎有几种方法可以使用它,但如果这是正确的,有人可以指出我正确的方向吗?
感谢您的任何回复
对于基本的 .NET 网站,我喜欢使用页面方法快速轻松地进行客户端到服务器的调用。请考虑以下 aspx 页及其隐藏代码。您可以通过添加 [WebMethod] 属性向 javascript 公开公共静态服务器方法。然后,您可以使用PageMethods.NameOfFunction()从javascript调用该函数。只需确保在 aspx 页上有一个脚本管理器,并将 EnablePageMethods 属性设置为"true"。
默认.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function init() {
var str = "bytes";
var data = [];
for (var i = 0; i < str.length; ++i)
{
data.push(str.charCodeAt(i));
data.push(0);
}
PageMethods.DoSomething(data);
}
</script>
</head>
<body onload="init();">
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptMan" runat="server" EnablePageMethods="true">
</asp:ScriptManager>
</form>
</body>
</html>
默认.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml.Linq;
using System.Web.Services;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[WebMethod]
public static void DoSomething(byte[] data)
{
//Do something with data from javascript
}
}