Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

HÁLÓZAT SOAP Hagyományos WCF/ASMX webszervizek.

Hasonló előadás


Az előadások a következő témára: "HÁLÓZAT SOAP Hagyományos WCF/ASMX webszervizek."— Előadás másolata:

1 HÁLÓZAT SOAP Hagyományos WCF/ASMX webszervizek

2 REST A webszerviz vezérlése URI-ken keresztül
HÁLÓZAT REST A webszerviz vezérlése URI-ken keresztül HttpGet, HttpPut, HttpDelete, HttpPost Bookmarks GetUserPublicBookmarks(string username, string tag)

3 OData Adatok lekérdezése REST „stílusban”
HÁLÓZAT OData Adatok lekérdezése REST „stílusban” Az adatok tipikusan XML formában (pl JSON vagy ATOM) vannak formázva

4 HÁLÓZAT WebClient Viszonylag magas szintű eszköz HTTP alapú kommunikáció kezelésére

5 WebClient HÁLÓZAT WebClient webClient = new WebClient();
// String letöltése webClient.DownloadProgressChanged += (sender, args) => { var bytesRecieved = args.BytesReceived; var totalBytesToRecieve = args.TotalBytesToReceive; var percentage = args.ProgressPercentage; }; webClient.DownloadStringCompleted += (sender, args) => var downloadedString = args.Result; webClient.DownloadStringAsync(new Uri("http://wp7.devportal.hu/"));

6 HÁLÓZAT HttpWebRequest Alacsony szintű eszköz HTTP alapú kommunikáció kezelésére Hozzáférés a headerekhez

7 HttpWebRequest HÁLÓZAT
HttpWebRequest request = HttpWebRequest.Create("http://wp7.devportal.hu") as HttpWebRequest; request.BeginGetResponse((iar) => { using (var responseStream = request.EndGetResponse(iar).GetResponseStream()) byte[] bytes = new byte[(int)responseStream.Length]; responseStream.Read(bytes, 0, (int)responseStream.Length); string responseString = Encoding.UTF8.GetString(bytes, 0, bytes.Length); } }, null);

8 HÁLÓZAT Sockets Igazán alacsony szintű eszköz TCP vagy UDP alapú kommunikáció kezelésére TCP Kapcsolat orientált Megbízható kommunikáció UDP Kapcsolatmentes Nem megbízható

9 HÁLÓZAT Sockets // Osztályszintű (cached) Socket objektum. Ezt fogjuk minden hívásnál használni Socket _socket = null; // Jelzőobjektum az aszinkron műveletek befejezésének jelzésére static ManualResetEvent _clientDone = new ManualResetEvent(false); // Timeout időtartam miliszekundomban const int TIMEOUT_MILLISECONDS = 5000; // Maximálus buffer méret az üzeneteknek const int MAX_BUFFER_SIZE = 2048;

10 Sockets HÁLÓZAT public string Connect(string hostName, int portNumber)
{ string result = string.Empty; DnsEndPoint hostEntry = new DnsEndPoint(hostName, portNumber); _socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); SocketAsyncEventArgs socketEventArg = new SocketAsyncEventArgs(); socketEventArg.RemoteEndPoint = hostEntry; socketEventArg.Completed += delegate(object s, SocketAsyncEventArgs e) result = e.SocketError.ToString(); _clientDone.Set(); }; _clientDone.Reset(); _socket.ConnectAsync(socketEventArg); _clientDone.WaitOne(TIMEOUT_MILLISECONDS); return result; }

11 Sockets HÁLÓZAT public string Send(string data) {
string response = "Operation Timeout"; if (_socket != null) SocketAsyncEventArgs socketEventArg = new SocketAsyncEventArgs(); socketEventArg.RemoteEndPoint = _socket.RemoteEndPoint; socketEventArg.UserToken = null; socketEventArg.Completed += delegate(object s, SocketAsyncEventArgs e) response = e.SocketError.ToString(); _clientDone.Set(); }; byte[] payload = Encoding.UTF8.GetBytes(data); socketEventArg.SetBuffer(payload, 0, payload.Length); _clientDone.Reset(); _socket.SendAsync(socketEventArg); _clientDone.WaitOne(TIMEOUT_MILLISECONDS); } else response = "Socket is not initialized"; return response;

12 Sockets HÁLÓZAT public string Receive() {
string response = "Operation Timeout"; if (_socket != null) SocketAsyncEventArgs socketEventArg = new SocketAsyncEventArgs(); socketEventArg.RemoteEndPoint = _socket.RemoteEndPoint; socketEventArg.SetBuffer(new Byte[MAX_BUFFER_SIZE], 0, MAX_BUFFER_SIZE); socketEventArg.Completed += delegate(object s, SocketAsyncEventArgs e) if (e.SocketError == SocketError.Success) response = Encoding.UTF8.GetString(e.Buffer, e.Offset, e.BytesTransferred); response = response.Trim('\0'); } else response = e.SocketError.ToString(); _clientDone.Set(); }; _clientDone.Reset(); _socket.ReceiveAsync(socketEventArg); _clientDone.WaitOne(TIMEOUT_MILLISECONDS); else response = "Socket is not initialized"; return response;

13 Sockets HÁLÓZAT public void Close() { if (_socket != null)
_socket.Close(); }

14 Sockets És végül az előző oldalakon bemutatott osztály használata:
HÁLÓZAT Sockets És végül az előző oldalakon bemutatott osztály használata: SocketClient client = new SocketClient(); client.Connect(remoteHost, remotePort); client.Send("Hello World"); client.Receive(); client.Close();


Letölteni ppt "HÁLÓZAT SOAP Hagyományos WCF/ASMX webszervizek."

Hasonló előadás


Google Hirdetések