こんばんは
飯田ともうします
環境は WinNT VC6です。

Socketを使ってのプログラムを現在作成しています。
やりたいことは、サーバー側にsend関数で所定のポートにメッセージを送ったら、
サーバー側のエンジンが情報を出し、その情報をrecv関数で受け取ります。

単独での送信・受信はテストは成功しているのですが、あわせて実行すると送信はし
かできません。以下のプログラムの修正点や、こうしたらいいというご意見がありま
したらよろしくお願いします。

//  ソケット接続
void SocketSet(void)
{
 SOCKET fd;      // socket用の変数
 struct sockaddr_in addr;  // socketの情報を代入する構造体
 char ip[256];     // 相手のIPアドレス
 char port[256];     // 相手のport
 WSADATA data;     // Windows Sockets初期化変数
 char msg[256] = "\0";     // ダミーのメッセージデータ
 char tel[256];     // ダミーの電話番号
 char ndata[256];     // 受信データ
 SOCKET fdacp;     // accept時のsocket用の変数
 int response;     // 接続要求の判定変数
 struct hostent *host;    // ホスト名に対するIPアドレスを格納するポインタ
 struct sockaddr_in acp;    // accept時にコピーされる構造体
 char buf[256];     // 得られた内容を入れるバッファ
 int i,len;


 // ソケットを初期化する
 WSAStartup( 0x0101, &data );

 fd = socket( AF_INET, SOCK_STREAM, 0 );
 // ソケットを確保する
 if ( fd == INVALID_SOCKET ){
  perror("socket");
  exit( EXIT_FAILURE );
 }

 // IPアドレスの設定
 sprintf(ip,"aaaa.aaaa.aaaa.aaaa");
 sprintf(port,"1220");

 // ソケットの情報を入れる
 memset( &addr, 0, sizeof( addr ) );  // 構造体addrの初期化
 addr.sin_family = AF_INET;    // AF_INETを指定
 addr.sin_port = htons( atoi(port) );   // ポートを指定
 addr.sin_addr.s_addr = inet_addr( ip ); // IPアドレスの指定

 if( connect( fd, (struct sockaddr *)&addr, sizeof(addr) ) < 0 ){
  perror("connect");
  closesocket( fd );
  exit( EXIT_FAILURE );
 }

 // 送信データ ここでサーバーに情報を渡します
 sprintf(tel,"0123456789");
 sprintf(msg,"http://aaa.aaaa.aaaa/%s",tel);
 send( fd, msg, sizeof( msg ), 0 );

/*
 if( bind( fd, (struct sockaddr *)&addr, sizeof( addr ) ) < 0 ){// バインド
の設定
  perror("bind");
  exit( EXIT_FAILURE );
 }

 // 接続要求に準備する
 if( listen( fd, 1 ) < 0 ){
  perror("connect");
  closesocket( fd );
  exit( EXIT_FAILURE );
 }
*/

 // 受信データ ここでサーバーからの情報を受け取ります
 for(;;){
  len = sizeof( acp );
  if( (fdacp = accept( fd, (struct sockaddr *)&acp, &len)) < 0 ){
   perror("accept");
   closesocket( fd );
   break;
  }
  else{
   // データの受信
   response = recv( fd, buf, sizeof( buf ), 0 );
   for( i=0; i<response; i++ ){
    printf("%c", buf[i] );
   }
   sprintf(ndata, buf);
   closesocket( fdacp );
  }1
 }
}