recvfrom

recvfromは、受信時にクライアント情報も取得できる。

Man page of RECV
3-17 UDPパケットのやりとりを行うサンプルプログラム:Geekなぺーじ

UDPサーバを作ってみる。
recvfrom.cで、

listenはいらなくて、whileループの中で、recvfromして、クライアント情報とメッセージを受信して出力。
で、UDPクライアントには、Netcatを使う。

ncコマンドの使い方 - hana_shin’s diary

ただ、このマシンには、

$ nc
-bash: nc: command not found
$

ncコマンドが入ってないので、

$ sudo yum install nmap-ncat

入れる。

============================================================================================================================================================
 Package                               Arch                               Version                                    Repository                        Size
============================================================================================================================================================
Installing:
 nmap-ncat                             x86_64                             2:6.40-19.el7                              base                             206 k

Transaction Summary
============================================================================================================================================================
Install  1 Package

Total download size: 206 k
Installed size: 423 k
Is this ok [y/d/N]: y
Downloading packages:
nmap-ncat-6.40-19.el7.x86_64.rpm                                                                                                     | 206 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 2:nmap-ncat-6.40-19.el7.x86_64                                                                                                           1/1
  Verifying  : 2:nmap-ncat-6.40-19.el7.x86_64                                                                                                           1/1

Installed:
  nmap-ncat.x86_64 2:6.40-19.el7

Complete!
$ 

入った。
あとは、

サーバ側起動
サーバ側起動

サーバ側起動。

クライアント側も接続
クライアント側も接続

クライアント側も接続。

あとはこんな感じでチャット的なやりとりが出来て、"end"を送るとサーバ側が終了する。
あとはこんな感じでチャット的なやりとりが出来て、"end"を送るとサーバ側が終了する。

あとはこんな感じでチャット的なやりとりが出来て、"end"を送るとサーバ側が終了する。

Sample/unixsyscall/recvfrom/recvfrom/src/recvfrom at master · bg1bgst333/Sample · GitHub