D言語によるソケットプログラミング

client1.d

import std.socket, std.stdio;

const string HOST = "localhost";
const uint PORT = 8080;
const uint SIZE = 1024;

void main() {
  auto serverTcpSocket = new TcpSocket(new InternetAddress(HOST, PORT));
  serverTcpSocket.send("Are you ready?");
  ubyte[SIZE] buffer;
  int size = serverTcpSocket.receive(buffer);
  if (size > 0) {
    (cast(string)buffer[0..size]).writeln;
  }
  serverTcpSocket.close;
}

server1.d

import std.socket, std.stdio;

const string HOST = "localhost";
const uint PORT = 8080;
const uint SIZE = 1024;

void main() {
  auto serverTcpSocket = new TcpSocket;
  serverTcpSocket.bind(new InternetAddress(HOST, PORT));
  serverTcpSocket.listen(0);
  ubyte[SIZE] buffer;
  for (;;) {
    auto clientTcpSocket = serverTcpSocket.accept;
    for (int size; (size = clientTcpSocket.receive(buffer)) > 0;) {
      (cast(string)buffer[0..size]).writeln;
      clientTcpSocket.send("Sure!");
    }
    clientTcpSocket.close;
  }
  //serverTcpSocket.close;
}

client2.d

import std.socket, std.socketstream, std.stdio;

const string HOST = "localhost";
const uint PORT = 8080;

void main() {
  auto serverSocketStream = new SocketStream(new TcpSocket(new InternetAddress(HOST, PORT)));
  serverSocketStream.writeLine("Are you ready?");
  serverSocketStream.readLine.writeln;
  serverSocketStream.close;
}

server2.d

import std.socket, std.socketstream, std.stdio;

const string HOST = "localhost";
const uint PORT = 8080;

void main() {
  auto serverTcpSocket = new TcpSocket;
  serverTcpSocket.bind(new InternetAddress(HOST, PORT));
  serverTcpSocket.listen(0);
  for (;;) {
    auto clientSocketStream = new SocketStream(serverTcpSocket.accept);
    clientSocketStream.readLine.writeln;
    clientSocketStream.writeLine("Sure!");
    clientSocketStream.close;
  }
  //serverTcpSocket.close;
}

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中