2007年8月29日水曜日

socket関連の関数のメモ







  • man 2 socket


int socket(int domain,int type,int protocol)


ソケットを作って、そのソケットのディスクリプタを返す。


domain


プロトコルファミリの指定


PF_INET IPv4


PF_INET6 IPv6


などがある。とりあえず今のところは、PF_INETしか使わないと思う。


type


通信方法の指定


SOCK_STREAM


SOCK_DGRAM


などがある。色々とあるが、とりあえずこの2つしか使わないと思う。





protocol


そのソケットが利用するプロトコルを指定する。


戻り値は、ソケットのディスクリプタ、エラーの場合には-1









  • man 2 connect


int connect(int sockfd,const struct sockaddr *serv_addr,socklen_t addr_len)


ディスクリプタsockfdが参照するソケットを*serv_addrのアドレスに接続する。


sockfd


接続するソケットのディスクリプタ





*serv_addr


接続先のIPアドレス、ポート番号等を指定する。





addr


serv_addrのサイズを指定する。


socketlen_tとなっているが実際にはint。


戻り値


成功時は、0。失敗したときは、-1









  • man 2 send


ssize_t send(int s,const void *buf,size_t len,int flags)


ソケットにメッセージを送る。


s


ソケットのディスクリプタ


*buf


送信したいメッセージのポインタ


len


送信したいメッセージのサイズ


flags


send()が呼び出されたときのプログラムの振舞を決める。


man を読んでも良く理解できない。0でデフォルトになる。


戻り値


成功時は、送信したメッセージのサイズ。失敗したときは、-1







  • man 3 recv


ssize_t recv(int s,void *buf,size_t len,int flags)


s


ソケットのディスクリプタ


*buf


受信したメッセージを入れるバッファ


len


バッファのサイズ


flags


recv()が呼び出されたときのプログラムの振舞を決める。


man を読んでも良く理解できない。0でデフォルトになる。



戻り値


成功時は、受信したメッセージのサイズ。失敗したときは-1





0 件のコメント:

コメントを投稿