25年経過してもUNIX Socket は UNIX Socket のままだった
UNIXのソケット通信を初めて実装したとき、心がざわざわするほど感動したものだ。
私がプログラマになって、はじめて通信プログラムを実装したのは、RS-232Cというシリアル回線で接続したHP-UX UNIXワークステーションとPC (MS-DOS)との通信だった。
(インターネットは大学と研究機関が独占し、一般企業や個人はまったく使えなかった時代だ。)
PCから送った文字がUNIXで表示できたときは、涙が出るほどうれしかったことを憶えている。
25年前の出来事だ。
それから25年後、androidスマホとPC (Windows7)との通信を実装する機会があった。
災害情報をPCからスマホにブロードキャストするというもので、どうやって実装しようか考え、UNIXソケットで実装することにした。
プログラミングしながら、25年前に勉強したことがティッシュペーパに水が染み込むように思い出された。
RS-232C は Wifiネットワーク に変わり、UNIX は android に変わり、開発環境は vi から IntelliJ IDEA や Android Studio に変わり、C言語はJavaに変わったけれど、UNIX Socket は UNIX Socket のままだった。
try {
// サーバへコネクションリクエスト
Socket socket = new Socket();
socket.connect(new InetSocketAddress(IP_SERVER, SOCKET_SERVER), CONNECT_TIMEOUT);
} catch (SocketTimeoutException ex) {
// タイムアウト
} catch (ConnectException ex) {
// Wifi切断等のコネクションエラー
}
try {
OutputStream outputStream = socket.getOutputStream();
// サーバへリクエスト送信
byte[] requestBuffer = "Request String".getBytes("UTF-8");
outputStream.write(requestBuffer, 0, requestBuffer.length);
} catch (Exception ex) {
// Writeエラー
}
// リクエストを受信
while(true) {
String requestString = readSocket(socket, inputStream, outputStream);
}
2023年12月 | ||||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
  |   |   |   |   | 1 | 2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |   |   |   |   |   |   |
iOS
web
アプリの著作権
ブロックチェーン/暗号技術
新しい社会
禅・大乗仏教
日本のなりたち