Kategorie: Jazyk D (dlang)

Sockety v jazyce D - server a klient (blokující)

Jednoduchý příklad serveru a klienta v jazyce D s využitím blokujícího socketu. (Jednoduchá implementace, server se ale zasekne pokud mu klient neodpoví - nevhodné pro nedůvěryhodné klienty.)

Klient

import std.stdio;
import std.socket;
import std.stream;
import std.socketstream;

int main(){
 Socket socket = new TcpSocket(new InternetAddress("localhost",1234));
 Stream stream = new SocketStream(socket);
 
 stream.write("Ahoj servere!");
 
 char[] buffer = new char[20];
 stream.read(buffer);
 writeln("Server zaslal: " ~ buffer);
 
 stream.close();
 socket.close();
 return 0;
}

Server

import std.stdio;
import std.socket;
import std.stream;
import std.socketstream;

int main(){
 Socket listener = new TcpSocket;
 listener.bind(new InternetAddress(1234));
 listener.listen(10);
 
 while(true){
  // accept() bude cekat dokud se nepripoji nejaky klient
  Socket client = listener.accept();
  Stream stream = new SocketStream(client);
  writeln("Pripojen klient");
  
  // poslat klientovi
  stream.write("Ahoj kliente!");
  
  // prijmout od klienta
  char[] buffer = new char[20];
  stream.read(buffer);
  writeln("Klient zaslal: " ~ buffer);
  
  writeln("Odpojen klient");
  stream.close();
  client.close();
 }
 listener.close();
 return 0;
}

Komentáře


Nebyly přidány žádné komentáře.