構造体の一部をクライアントに渡して苦労しました。私は次のプリントステートメントで症例1の状態をテストしました:構造体の一部をtcpサーバーからクライアントに送信しようとしました
printf("%d %s", data[i].course, data[i].Dept);
これは問題なく動作しました。今私がしようとしているのはソケットを通して送信することです。マイ送信文は次のとおりです。
send(connected, send_data, strlen(send_data), 0);
今私は、次の文を試した:
send_data = data[i].couurse;
strcpy(send_data, data[i].course);
send_data = atoi(data[i].course);
をして役に立つ知って、どちらも働きました。私は道がなければならないことを知っていて、誰かが私にどのように私を見せることを望んでいる。私はコースと部署を送信する必要があり、この特定のケースで
while(1) {
bytes_received = recv(connected, recv_data, BUF, 0);
recv_data[bytes_received] = '\0';
switchInput = atoi(recv_data);
switch(switchInput) {
case 1:
fread(data, sizeof(sched_record), MAX_RECORD, filePointer);
fclose(filePointer);
char send_data[] = "Enter Department Name";
send(connected, send_data, strlen(send_data), 0);
bytes_received = recv(connected, recv_data, BUF, 0);
recv_data[bytes_received] = '\0';
strcpy(tempDept, recv_data);
for (i=0; i<MAX_RECORD; i++){
if ((strcmp(tempDept, data[i].Dept)==0) && tempCourse != data[i].course){
send(connected, &data[i].Dept, sizeof(data[i].Dept), 0);
tempCourse = data[i].course;
send(connected, &tempCourse, sizeof(tempCourse), 0);
}
}
break;
:
int switchInput;
int i = 0;
int connected;
int sock;
int bytes_received;
int sin_size;
int true = 1;
int tempCourse = 0;
char send_data[BUF];
char recv_data[BUF];
char tempDept[5];
char tempDay[1];
char tempTime[1];
FILE *filePointer;
sched_record data[MAX_RECORD];
filePointer = fopen (BINFILE, "rb");
と: 私はコードの関連部分が含まれています。これを行うには良い方法がありますか?これはちょっと混乱しているようです。もしそうなら、もっと単純化されたバージョンを私に見せることができますか?
送信の戻り値は何ですか? – octopusgrabbus
@octopusgrabbus私はあなたの質問を理解していません。 –
戻りステータスを送信しますか? – octopusgrabbus