Linuxでsocket接続をしているのですが・・・。
簡単なポートフォワードのプログラムを作ろうと思って、
下のようなプログラムを組んでみました。
struct sockaddr_in cli ;
fd = SetupForClient(元IP, proto, port) ;
で、クライアントから接続を待って
clen = sizeof(cli) ;
recvfrom(fd, recv_data, sizeof(recv_data), 0,(struct sockaddr *)&cli, &clen) ;
でデータを受信して
fd2 = ConnectToServer(先IP, proto, port) ;
write(fd2, recv_data, sizeof(recv_data)) ;
で反対側のNICにデータを書き出す・・・。
という基本的なものなのですが、書き出す側に接続しようとすると
Connectの関数内で Address already in use というエラーが出てしまいます・・・。
fdを解放していないのかとも思ったのですが、再起動してもダメでした。
どういうことなのでしょうか・・・?