[分享] Bind: Address Already in Use

作者: mycallmax (阿冠)   2009-04-22 20:41:14
寫計網作業的時候
在剛Bind某一個Port之後不能馬上再Bind
Bind: Address Already in Use
要等系統把那個port真正close才行
這個其實是有辦法解決的
可以用setsockopt()這個函式來解決
用法如下
int opt=1;
listenfd=socket(AF_INET, SOCK_STREAM, 0);
setsockopt(listenfd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt));
多了setsockopt把該socket設定成可以reuse同一個port即可
但這個方法好像有個潛在的問題
不過還是可以用
詳細可以參考下面文章
http://tinyurl.com/c89vep
作者: goingon (無)   2009-04-22 20:52:00
認真推!
作者: locationc (星如止水)   2009-04-22 23:12:00
.....也太認真了吧
作者: kuokuo321 (kuokuo)   2009-04-22 23:27:00
推~~~以前遇到bind超困擾的!
作者: edwardhw (我是大黃)   2009-04-23 00:37:00
推一個
作者: robertshih (施抄)   2009-04-28 14:54:00

Links booklink

Contact Us: admin [ a t ] ucptt.com