int main(int argc,char **argv) { cout << "running...." << endl; ServerSocket *server; try { server = new ServerSocket(30000); // 等待client連線 } catch ( SocketException& e ) { cout << "Exception was caught:" << e.description() << "\nExiting.\n"; return -1; } while(true) { try { struct imagedata image; // 把第一個資料填入 memset(&image,1,sizeof(struct imagedata)); // 不可以填0,否則會出現錯誤,可能是所有成員都必需要有資料 image.r_pixel[0][0]='P'; // 先填一個數值進去,到client端再讀取出來,看是否有錯誤 // 把資料寫到before - start FILE *fp; fp = fopen("before","wb"); fwrite(&image,1,sizeof(struct imagedata),fp); fclose(fp); // 把資料寫到before - end char data[MAXRECV]; while(true) { memset(data,0,MAXRECV); //*server >> data; //::SDFile(server,"realalt180.exe"); ::SDStruct(server,(char*)&image); // 送資料 printf("%s\n",data); } } catch (SocketException &) { server->close_connfd(); server->accept(); } } return 0; }