tworzenie połączeń sieciowych

Slides:



Advertisements
Podobne prezentacje
Java Data Objects.
Advertisements

Introduction to SystemC
Dzisiejszy wykład Wyjątki.
Analiza wywołania i przebiegu przerwań w systemie Linux

Java Server Faces Tomasz Nowak.
ALLEGRO PIERWSZA GRA: WYŚCIG
Model TCP/IP – OSI.
Wybrane elementy C#, BCL
SQL Server Native XML Web Services
Budowa Sewera i Klienta. Funkcja Connect (1) Funkcja Connect (2)
Budowa Sewera i Klienta opartego na protokole udp
Autor Roman Jędras Prowadzący: dr inż. Antoni Izworski Przedmiot:
Java vs C# Michał Prządka Tomasz Nowak
Architektura Systemów Komputerowych
GUI Struktury Spotkanie integracyjne Nazwa wydziału: EAIiE Nazwa katedry: Informatyka Miejsce i data prezentacji: Kraków,
PROGRAMOWANIE URZĄDZEŃ MOBILNYCH
Przetwarzanie rozproszone
Mirosław Ochodek Sponsorzy: JFace Jak jeszcze szybciej tworzyć interfejsy? ECESIS Eclipse Community Education Project An.
Metody autoryzacji użytkowników wymaga integracji z systemem operacyjnym nie wymaga logowania mała pewność mechanizmu wymaga logowania duża pewność mechanizmu.
Router(config)# access-list 1 permit ale można również: Router(config)# access-list 1 permit any.
Zaawansowane technologie Javy Wykład 5 (6 marca 2012) Programowanie sieciowe (1)
Gniazda komunikacji sieciowej w języku Java
C#, Visual Studio 2010, .NET 4.0 dr inż. Marcin Radom
Język C# ( 4.0 ) using System; namespace HeWo { class Hello { static void Main(string [] args) { Console.WriteLine("Hello World!"); }
.NET Remoting Łukasz Zawadzki.
Łukasz Monkiewicz.
Współprogramy Plan: Motywacja Składnia Scenariusz obiektu współprogramu Przykłady Producent – konsument ( instrukcja attach ) Czytelnik -pisarze ( instukcja.
142 JAVA – sterowanie i wątki public class A20 extends javax.swing.JApplet implements ActionListener { private int licznik = 0; private JTextField t =
Aplikacje sieciowe Obiekty typu Socket. ServerSocket ClientSocket Socket ClientSocket Socket.
Warstwy aplikacji sieciowych
Przykłady sieci obiektowych
12. GNIAZDA BSD Biblioteka funkcji związanych z gniazdami jest interfejsem programisty do obsługi protokołów komunikacyjnych. Została utworzona dla Unixa.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Networking Prezentacja.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Exceptions Prezentacja.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Threads Prezentacja.
Piotr Kasprzyk Instytut Informatyki Politechniki Śląskiej
Język C# Copyright, 2004 © Adam Czajka.
Przestrzeń System podstawowe klasy i klasy bazowe.
Monika Rokosik Katarzyna Rola. Wykrywanie kursu akcji poniżej dołka znajdującego się pomiędzy dwoma sąsiednimi górkami, z których późniejsza jest mniejsza.
Node.js – Serverside Javascript
Rozproszone transakcje z wykorzystaniem usługi Service Broker w SQL Server 2008 R2 Andrzej Ptasznik.
REKURENCJA.
PRZELICZNIK DŁUGOŚCI w programie NetBeans IDE autorzy: Michał Mrozek i Marcin Mrugała 2012.
Asynchroniczność w Windows 8 Jakub Binkowski. O mnie Jakub Binkowski Lead.NET Developer.
Click to show the screen.
db4o Kacper Skory Marcin Talarek
PIO 2_2, Zofia Kruczkiewicz1 Wykład 2 – część druga Iteracyjno-rozwojowy cykl oprogramowania 2.
Tablice.
Cz.8 Zdarzenia. Refleksja – przypomnienie Event Programowanie zdarzeniowe Do dzieła!
Krótka historia asynchroniczności w.NET Jakub Binkowski.
Warsztaty C# Część 2 Grzegorz Piotrowski Grupa.NET PO
IBM Tivoli Storage Manager Strojenie A Presentation by Paweł Krawczyk June 8, 2011.
Warsztaty użytkowników programu PLANS – Karwia06 Język makropoleceń JMP programu PLANS Część I mgr inż. Tomasz Zdun.
Rozdział 9: Przegląd usług sieciowych
Rozdział 6: Analiza protokołu TCP/IP
Komunikacja przez sieć z wykorzystaniem biblioteki WINSOCK
Integracja aplikacji Wykład 4
TROCHĘ HISTORII Marek Zając PO CO UŻYWAĆ OPENCL? Marek Zając.
Silverlight 4 dla Windows Phone 7
Aplikacje TCP i UDP. Łukasz Zieliński
Piotr Czapiewski Wydział Informatyki ZUT.  Extensible Markup Language  Język znaczników  Human-readable and machine-readable  Niezależny od platformy.
Wprowadzenie Przygotował Adam Zawadzki
1 Programowanie sieciowe Protokoły sieciowe, model warstwowy DOD, protokoły TCP i UDP, adresy IP, porty, gniazda, operacje na adresach - klasa InetAddress.
Zagrożenia.
Pierwsza aplikacja na Windows Phone. Dlaczego Windows Phone?
Zaawansowane technologie Javy Wykład 4 (16 marca 2017)
SIECI KOMPUTEROWE WYKŁAD 13. WARSTWA APLIKACJI
Wydział Matematyki, Informatyki i Architektury Krajobrazu
By John Greifzu and Grant Abella Advised by Aleksander Malinowski
Zapis prezentacji:

tworzenie połączeń sieciowych NETWORKING tworzenie połączeń sieciowych ·       gniazda UDP, TCP ·       klasy transportowe ·       klasy protokółów ·       programowanie asynchroniczne

·       gniazda UDP - odbiorca Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); IPEndPoint localEP = // adres odbiorcy new IPEndPoint(IPAddress.Any, 5001); listener.Bind(localEP);

IPEndPoint tempRemoteEP = // adres nadawcy new IPEndPoint(IPAddress.Any, 5002); EndPoint trEP = (EndPoint)tempRemoteEP; listener.Poll(-1, SelectMode.SelectRead); listener.ReceiveFrom(buffer, ref trEP);

- nadawca string listener = "localhost"; Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); IPEndPoint localEP = // adres nadawcy new IPEndPoint(IPAddress.Any, 5002); client.Bind(localEP);

buffer = Encoding.ASCII.GetBytes(message); ipaddress = Dns.GetHostEntry(listener).AddressList[0]; IPEndPoint remoteEP = // adres odbiorcy new IPEndPoint(ipaddress, 5001); client.SendTo(buffer, 0, buffer.Length, SocketFlags.None, remoteEP); UDPSocket

· gniazda TCP - odbiorca Socket GetListenerSocket(string host, int port) { Socket s = null, ts; IPEndPoint lep; IPHostEntry iphe = Dns.GetHostEntry(host); foreach(IPAddress ipa in iphe.AddressList) lep = new IPEndPoint(ipa, port); ts = new Socket(lep.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

try { ts.Bind(lep); ts.Listen(2); // max 2 waiting connections s = ts; break; } catch ( . . . ) { . . . } return s;

Socket server = GetListenerSocket("localhost", 5010); Socket s = server.Accept(); byte[] responseData = new byte[128]; int bytesRead; try { bytesRead = s.Receive(responseData); . . . } catch . . . ...

- nadawca Socket GetSocket(string host, int port) { Socket s = null, ts; IPEndPoint ipe; IPHostEntry iphe = ns.GetHostEntry(host); foreach(IPAddress ipa in iphe.AddressList) ipe = new IPEndPoint(ipa, port); ts = new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

try { ts.Connect(ipe); s = ts; break; } catch ( . . .) { . . .} } return s; Socket s = GetSocket("localhost", 5010); if(s == null) return; s.Send(buffer); TCPSocket

·       klasa transportowa UDP UdpClient - odbiorca UdpClient listener = new UdpClient(port); IPEndPoint remoteEp = new IPEndPoint(IPAddress.Any, port);   byte[] buffer = listener.Receive(ref remoteEp);

- nadawca UdpClient client = new UdpClient(port); byte[] buffer = Encoding.ASCII.GetBytes(message); client.Send(buffer, buffer.Length, listener, port); client.Close(); UDPClass

·       klasy transportowe TCP TcpListener TcpClient - odbiorca TcpListener listener = new TcpListener(port); listener.Start(); if (listener.Pending()) { TcpClient s = listener.AcceptTcpClient(); NetworkStream stream = s.GetStream(); } // int bytesRead = stream.Read(responseData, 0, responseData.Length); // byte[]

TcpClient client = new TcpClient(); client.Connect(listener, port); - nadawca TcpClient client = new TcpClient(); client.Connect(listener, port); NetworkStream stream = client.GetStream(); stream.Write(buffer, 0, buffer.Length); // if (stream.DataAvailable) bytesRead = stream.Read(buffer, 0, buffer.Length); TCPClasses

·       przesyłanie z wykorzystaniem protokółu SOAP - odbiorca NetworkStream ns = tcpclient.GetStream(); SoapFormatter channel = new SoapFormatter(); message = (string)channel.Deserialize(ns); - nadawca channel.Serialize(tcpclient.GetStream(), message); TCPSOAP

· klasy protokółów - FTP - klasa WebClient Uri libra = new Uri (@"ftp://man.put.poznan.pl/Nowy.txt"); if (libra.Scheme != Uri.UriSchemeFtp) return; WebClient request = new WebClient(); request.Credentials = new NetworkCredential(name, pass); // request.DownloadFile(libra.ToString(), @"Nowy.txt"); request.UploadFile(libra.ToString(), @"Nowy.txt"); Get1

- klasy FtpWebRequest FtpWebResponse Uri libra = new Uri(@"ftp://man.put.poznan.pl"); FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(libra); request.Credentials = new NetworkCredential(name, pass); request.UseBinary = false; request.Method = WebRequestMethods.Ftp.ListDirectory; FtpWebResponse response = (FtpWebResponse)request.GetResponse(); Stream responseStream = response.GetResponseStream(); Get2

·       klasy protokółów - HTTP, HTTPS, FILE - WebClient string address = @"http://www.cs.put.poznan.pl/jkniat/HT.html"; // @"https://poczta.put.poznan.pl" // @"file://D:/HT.html WebClient wc = new WebClient(); // Console.WriteLine(Encoding.ASCII.GetString (wc.DownloadData(address))); wc.DownloadFile(address, "HTcopy.html"); Get1

- WebRequest WebResponse string address = @"http://www.cs.put.poznan.pl/jkniat/HT.html"; WebRequest request = WebRequest.Create(address); WebResponse response = request.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.ASCII); Console.WriteLine(reader.ReadToEnd()); Get2, HTTPpage

·       programowanie asynchroniczne - TCP Socket Server ManualResetEvent AcceptEvent = new ManualResetEvent(false); // ManualResetEvent ReceiveEvent = new ManualResetEvent(false); // synchronizacja wątków za pomocą zgłaszania // zdarzeń i oczekiwania na zdarzenia: // .WaitOne() .Set() .Reset()

void Start() { Socket srv = GetLisSocket ("localhost", port); AcceptEvent.Reset(); ReceiveEvent.Reset(); srv.BeginAccept( new AsyncCallback(AcceptCallback), srv); AcceptEvent.WaitOne(); // oczekiwanie na sygnał }

void AcceptCallback(IAsyncResult result) {Socket temp = (Socket) result.AsyncState; Socket a = temp.EndAccept(result); asyncData.socket = a; IAsyncResult recres = a.BeginReceive(ad.RecBytes, 0, 256, 0, new AsyncCallback(ReceiveCallback), ad);  ReceiveEvent.WaitOne(); // oczekiwanie AcceptEvent.Set(); // sygnał dla Start }

void ReceiveCallback(IAsyncResult result) { int bytes = ad.socket.EndReceive(result); if (bytes > 0) { string data = Encoding.ASCII.GetString(ad.RecBytes, 0, bytes); Console.WriteLine("Odebrano: [" + data + "]\n"); } ReceiveEvent.Set(); // sygnał dla AcceptCallback AsyTCP

- HTTP string address = @"http://www.cs.put.poznan.pl"; WebRequest request = WebRequest.Create(address); AsyncResponseData ad = new AsyncResponseData(request); IAsyncResult responseResult = request.BeginGetResponse (new AsyncCallback(ResponseCallback), ad);

void ResponseCallback(IAsyncResult result) {AsyncResponseData ar = (AsyncResponseData)result.AsyncState; WebRequest request = ar.Request; WebResponse response = request.EndGetResponse(result); Stream stream = response.GetResponseStream(); AsyncReadData ad = new AsyncReadData(stream); IAsyncResult readResult = stream.BeginRead(ad.Buffer, 0, ad.Buffer.Length, new AsyncCallback(ReadCallback), ad); . . . } AsyPage