2020年2月18日火曜日

ソケットの罠

https://www.ibm.com/developerworks/jp/linux/library/l-sockpit/index.html

知らないと、ここの3番は特に引っかかりやすい。
あれーなんでコネクトしないんだろう。何度もすると接続するのに。という分かりにくい現象







int sock, ret, on;
struct sockaddr_in servaddr;

/* Create a new stream (TCP) socket */
sock = socket( AF_INET, SOCK_STREAM, 0 ):

/* Enable address reuse */
on = 1;
setsockopt ( sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on) ); //<-------これ

/* Allow connections to port 8080 from any available interface */
memset( &servaddr, 0, sizeof(servaddr) );
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl( INADDR_ANY );
servaddr.sin_port = htons( 45000 );

/* Bind to the address (interface/port) */
ret = bind( sock, (struct sockaddr *)&servaddr, sizeof(servaddr) );



0 件のコメント:

コメントを投稿