winsockを使って1対1のチャットプログラムみたいなのが作りたいのですが
1対1なんで、各PCがサーバ兼クライアントみたいになると思うんですが
クライアント用のソケットとサーバ用のソケットの同居が難しくて
サーバ用はacceptすると待機状態になってプログラムの進行が止まって
クライアント用はサーバがacceptしていないとそもそも接続が成り立たないみたいで
サーバとして待機するか、クライアントとして接続しに行くかの二者択一状態にあります

なので、クライアントの対向のサーバへの接続を、自己のサーバでのacceptと同時並行する
みたいな方法があれば便利なのですが、ありますかね?

それともそもそもクライアントとサーバのプログラムは別々にしていた方がやっぱり楽なのでしょうか?