ご無礼大変申し訳ありませんでした。現在私はHard Hut Linux2.0 でプログラムを組んでいます。 原因のソースコードは以下の様です。 if ((*s = socket(AF_INET, SOCK_STREAM, 0)) < 0) { // TCPでソケットを開く perror("socket"); s_vMsgSnd(TSK_ER , 71 , 40); return -1; } syslog(LOG_DEBUG,"s = %d",*s); syslog(LOG_DEBUG,"port = %d",port); // 接続に必要な情報を設定する memset((char *) &server, 0, sizeof(server)); server.sin_family = AF_INET; server.sin_addr.s_addr = dst_ip; //<GT_0010> server.sin_port = htons(port); s_vSigTimer(TIMER_START); alarm(TIMEOUT_SEC); if (connect(*s, (struct sockaddr *) &server, sizeof server) < 0) { // サーバとのコネクションを確立する perror("connect"); s_vSigTimer(TIMER_STOP); return -1; //<GT_0003> add } s_vSigTimer(TIMER_STOP); signal(SIGPIPE,ReCNCT); if(usCnctNG == FLAG_ON) return -1; 上記の方法でconnectまで持っていきます。 その後 while(sendbytes < MaxLENGTH){ nSended=send(*s,psz,strlen(psz),0); if(nSended == -1){ perror("SendError:"); s_vMsgSnd(TSK_ER , 71 , 57); s_vSigTimer(TIMER_STOP);return -1; }else if(counttim > 0){ syslog(LOG_DEBUG,"+*+*+*+*time over +*+*+*+*"); s_vSigTimer(TIMER_STOP);return -1; } psz+=nSended; sendbytes+=nSended; } でMaxLENGTHに達するまでデータを送信します。 |