Linuxがポート経由でデータ受信をリッスンする方法

Linuxでポートをリスンしてデータを受信するには、次のような方法があります。

  1. Socketプログラミングを利用:CやC++といったプログラミング言語からLinuxシステムが提供するSocket APIを呼び出し、指定のポートでソケットを作成し、recv関数でデータ受信を行う。
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdio.h>

int main()
{
    int sockfd = socket(AF_INET, SOCK_STREAM, 0);  // 创建socket
    struct sockaddr_in addr;
    addr.sin_family = AF_INET;
    addr.sin_addr.s_addr = INADDR_ANY;
    addr.sin_port = htons(1234);  // 监听的端口号

    bind(sockfd, (struct sockaddr *)&addr, sizeof(addr));  // 绑定地址和端口
    listen(sockfd, 5);  // 开始监听

    while (1) {
        int newsockfd = accept(sockfd, NULL, NULL);  // 接受连接
        char buffer[1024];
        int len = recv(newsockfd, buffer, sizeof(buffer), 0);  // 接收数据
        printf("Received: %s\n", buffer);
        close(newsockfd);  // 关闭连接
    }

    close(sockfd);  // 关闭socket
    return 0;
}
  1. netcatコマンドラインツールを使用して、TCP/UDP接続の作成、ポートの監視などを行います。指定されたポートを監視して受信データをプリントアウトするには、次のコマンドを使用してください。
nc -l 1234
  1. ncat コマンドラインツールを使用します。ncatは、より多くの機能とより優れたパフォーマンスを備えた、netcatの改良版です。指定されたポートを監視し、受信したデータを印刷するには、次のコマンドを使用します。
ncat -l 1234

上記3つはポートをリスンしてデータを収集することができる一般的な方法で、必要に応じて適切な方法を選択してください。

bannerAds