C言語-ソケット送受信関数



ソケットプログラムでデータの送受信を行う関数は以下の通りです。


send()/recv()

ソケットディスクリプタを用いてデータの送受信処理を行います。

send()とrecv()はペアで扱われる関数であり、引数が似ています。

int send( int socket, const void *msg, unsigned int msgLength, int flag );
int recv( int socket, void *msg, unsigned int msgLength, int flag );

引数

socket ソケットディスクリプタを指定します。
msg 送受信するメッセージ領域を指定します。
msgLength メッセージの文字列長を指定します。
flag ソケットが呼び出された際のデフォルト動作を変更します。flagに「0」を指定するとデフォルト動作となります。

戻り値

正常時には、送受信したバイト数を返します。

エラーの場合には-1を返します。


sendto()/recvfrom()

UDP通信時(コネクションレス型のデータ転送時)にデータ送受信を行います。

int sendto( int socket, const void *msg, unsigned int msgLength,
            int flags, struct sockaddr *addr_dest, unsigned int addrlen );
int recvfrom( int socket, void *msg, unsigned int msgLength,
            int flags, struct sockaddr *addr_src, unsigned int *addrlen );

引数

socket ソケットディスクリプタを指定します。
msg 送受信するメッセージ領域を指定します。
msgLength メッセージの文字列長を指定します。
flag ソケットが呼び出された際のデフォルト動作を変更します。flagに「0」を指定するとデフォルト動作となります。
addr 送受信の宛先アドレス
addrlen アドレス長

戻り値

正常時には、送受信したバイト数を返します。

エラーの場合には-1を返します。


read()

TCP通信時に、ソケットディスクリプタからの読み込む。


write()

TCP通信時に、ソケットディスクリプタへの書き込む。




関連

C言語-ソケットプログラミング




スポンサード リンク