トップ ITインフラ ネットワーク プログラミング コード例 Java言語とC言語のプログラムで通信する例

Java言語とC言語のプログラムで通信する例

このページは、Java言語とC言語のプログラムで通信する例を紹介しています。

▲記事トップへ

説明

Javaのクライアント(Windows)からCのサーバ(Linux)に接続して、「Hello World!!」という電文を受信して クライアント側に表示するプログラムの簡単なサンプルプログラムです。

※コードを簡単に見れるようにエラー処理などは記述しないようにしています。

環境

クライアント側

サーバ側

Java側サンプルコード

サンプルコード(SampleClient.java)

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.Socket;

public class SampleClient {
    private static String HOSTNEMAE = "192.168.100.1";
    private static int PORT = 12345;

    public static void main(String[] args) throws Exception{

        // ストリームソケットを作成し、指定されたホスト・ポート番号に接続する
        Socket socket = new Socket(HOSTNEMAE, PORT);

        // レスポンスを受信する
        InputStreamReader isr = new InputStreamReader(socket.getInputStream());
        BufferedReader br = new BufferedReader(isr);

        // 受信したデータを確認用に表示する
        System.out.println(br.readLine());

        // ソケットを閉じる
        socket.close();
    }
}

コンパイル

ここではjavacを使用してコンパイルする例を示します。

> javac SampleClient.java
> dir
SampleClient.class SampleClient.java

C側サンプルコード

サンプルコード(SampleServer.c)

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

#define PORT 12345

int main() {

    // ソケット作成
    int sockOfLiten = socket(AF_INET, SOCK_STREAM, 0);

    // ソケットにアドレスとポートをマッピングする
    struct sockaddr_in addrOfSv;
    addrOfSv.sin_family = AF_INET;
    addrOfSv.sin_port = htons(PORT);
    addrOfSv.sin_addr.s_addr = INADDR_ANY;
    bind(sockOfLiten, (struct sockaddr *) &addrOfSv, sizeof(addrOfSv));

    // ポートをListenする
    listen(sockOfLiten, SOMAXCONN);

    // 接続要求を受け付ける
    struct sockaddr_in addrOfCl;
    int len = sizeof(addrOfCl);
    int sockOfCon = accept(sockOfLiten, (struct sockaddr *)&addrOfCl, &len);

    // Listeningソケットを閉じる
    close(sockOfLiten);

    // データを送信する
    send(sockOfCon, "Hello World!!\n", 15, 0);

    // Connectionソケットを閉じる
    close(sockOfCon);

    return 0;
}

コンパイル

ここではgccを使用してコンパイルする例を示します。

$ gcc SampleServer.c -o SampleServer
$ ls
SampleServer  SampleServer.c

実行

まずはじめに、サーバプログラムをを起動します。

$ ./SampleServer

次に、クライアントプログラムを実行します。

> java SampleClient
Hello World!!

※クライアントを実行するとサーバから受け取った「Hello World!!」という文字列が表示されます。

戻る

スポンサーリンク

サイト内のページ

言語
C・C++ /HTML /Java /JavaScript /PHP /シェルスクリプト

開発環境
Ant /Burp /Eclipse /Fiddler /gcc /gdb /Git /g++ /JDK /JMeter /JUnit /Teraterm /ZAP

技術・仕様
Ajax /CORBA /Jakarta EE(旧称J2EE、Java EE) /JNI

ライブラリ/Framework/CMS
bootstrap /jQuery /FuelPHP /Lucene /MyBatis /Seasar2 /Spring /Struts /WordPress

Web API
Google Maps

ITインフラOSとミドルウェア
Linux /Windows /シェル
ActiveMQ /Tomcat /MariaDB /MySQL /Nagios /Redis /Solr

ITインフラサーバー
公開Webサーバー

ITインフラネットワーク
プログラミング /構築

ITインフラセキュリティ
公開サーバーのセキュリティ

PC製品
ZOTAC

SI
ホームページの作り方

その他
IT用語 /ITスキル体系

スポンサーリンク

関連サイト内検索ツール

zealseedsおよび関連サイト内のページが検索できます。

IPアドレス確認ツール

あなたのグローバルIPアドレスは以下です。

18.218.196.182

HTMLの表示色確認ツール

パスワード生成ツール

文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。

ここに生成されます。

スポンサーリンク