2013-09-06 3 views
0

Я просто изучаю, как использовать отношения клиентского сервера TCP. Я искал часы и часы, но я не вижу никакого способа, чтобы клиент мог получить вход от пользователя, а затем клиент отправил массив байтов [] на сервер и сделал что-то, кроме сравнения строк, есть ли какой-то способ что я могу вызвать вызов метода с этим вводом? или я что-то упускаю?Как клиент вызывает метод на сервере?

Я слышал о чем-то, называемом сериализации, хотя, похоже, есть несколько способов его использования, может кто-то указать мне в правильном направлении, если это правильно?

Спасибо за любой ответ

+0

вы знаете что-нибудь о WCF ли? Это то, что вам нужно –

+0

Вы говорите о запросе ajax? - http://www.w3schools.com/jquery/ajax_ajax.asp –

+0

Я не знаю, если вам НУЖНО wcf. Но, безусловно, что-то похожее – Jonesopolis

ответ

0

для основного веб-сайта .NET, мне нравится использовать методы страницы для быстрого простой способ сделать клиент серверных вызовов. Рассмотрим следующую страницу aspx и ее код. Вы можете открыть общедоступные методы статического сервера для javascript, добавив атрибут [WebMethod]. Затем вы можете вызвать функцию из javascript, используя PageMethods.NameOfFunction(). Просто убедитесь, что у вас есть сценарист на странице aspx с свойством EnablePageMethods, установленным на «true».

default.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> 

Default.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 
    } 
} 
Смежные вопросы