• Nie Znaleziono Wyników

Aplikacje sieciowe

N/A
N/A
Protected

Academic year: 2021

Share "Aplikacje sieciowe"

Copied!
9
0
0

Pełen tekst

(1)

Aplikacje sieciowe

Obiekty typu Socket

(2)

ServerSocket ClientSocket

Socket

Socket Socket

Socket

Socket

ClientSocket

Socket

(3)

Socket gniazdo = new Socket(nazwa hosta , nr portu );

gniazdo.getInputStream() gniazdo.getOutputStream() Gniazdo.close()

Porty 1 – 1024 zarezerwowane są na usługi systemowe !!

(Assigned Numbers Authority)

Można używać dla swoich celów portów o numerach większych niż 1024 i mniejszych od 65535.

Niektóre wyższe numery portów są wykorzystywane->

www.sockets.com/services.htm

ServerSocket gniazdoS = new ServerSocket(port);

Socket gniazdo = gniazdoS.accept();

gniazdoS.close();

(4)

Obiekt Socket na platformie .NET

Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

Socket s = new Socket(AddressFamily.InterNetwork,

SocketType.Dgram, ProtocolType.Udp);

(5)

Socket w aplikacji klienta

private Socket clientSocket;

...

clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

}

clientSocket.Connect("localhost", 1000);

byte[] buffer = new byte[200];

buffer = Encoding.ASCII.GetBytes(„UserName = R2D2");

clientSocket.Send(buffer);

(6)

Implementacja Serwera

Socket serverSocket;

Socket handler;

serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName());

IPAddress ipAddress = ipHostInfo.AddressList[0];

IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 1000);

serverSocket.Bind(localEndPoint);

serverSocket.Listen(10);

...

handler = serverSocket.Accept();

...

byte[] buffer= new byte[200];

bytesRead = handler.Receive(buffer);

(7)

„Asynchroniczny” Socket

public class StateObject {

public Socket socket;

public byte[] buffer = new byte[1024];

} ....

Socket socket;

...

StateObject stateObject = new StateObject();

socket.BeginReceive(stateObject.buffer, 0, stateObject.buffer.Length, SocketFlags.None,

new AsyncCallback(ReceiveData), stateObject);

(8)

Akceptacja połączenia

public void AcceptUser(IAsyncResult ar) {

Socket listener = (Socket)ar.AsyncState;

Socket handler = listener.EndAccept(ar);

}

Form.CheckForIllegalCrossThreadCalls = false;

serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName());

IPAddress ipAddress = ipHostInfo.AddressList[0];

IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 1000);

serverSocket.Bind(localEndPoint);

serverSocket.Listen(10);

serverSocket.BeginAccept(new AsyncCallback(AcceptUser),serverSocket);

(9)

Odbiór danych

public void ReceiveData(IAsyncResult result) {

StateObject state=(StateObject) result.AsyncState;

Socket s = state.socket;

int bytesRead=s.EndReceive(result);

if (bytesRead > 0) {

DisplayTextBox.AppendText(

Encoding.ASCII.GetString(state.buffer,0,bytesRead) + "\n");

s.BeginReceive(state.buffer, 0, state.buffer.Length, SocketFlags.None,

new AsyncCallback(ReceiveData), state);

}

else

{

DisplayTextBox.AppendText("Koniec transmisji\n");

} }

Cytaty

Powiązane dokumenty

Dokonano analizy przemian współczesnej gospodarki światowej, przemian w otoczeniach bliższym i dalszym portów morskich, przemian systemów transportowych, rozwoju

•Gdy istnieje potrzeba wykonania aplikacji dla urządzenia przenośnego.

POST /Trading/GetStockPrice.asp HTTP/1.1 Host: localhost.. Content-Type: application/x-www-form-urlencoded

public DbSet<Student> Studenci { get; set; } public DbSet<Firma> Firmy { get; set; }. public DbSet<Umowa> Umowy { get; set; }

Ritch

Komunikacja jest 8 bitowa, dwukierunkowa realizowany w warstwie TCP. Przesyłane znaki są kodowane 7 bitowo, pozostałe znaki używane są jako sterujące.. Program klienta, najczęściej

portu w morze zawsze jest odprowadzany przez

trójmodalny (główny w węźle) międzynarodowy Tab. Rekomendowane porty rzeczne ładunkowe na Odrzańskiej Drodze Wodnej.. Wyznaczanie lokalizacji portów rzecz- nych ładunkowych