我正在尝试将结构的一部分传递给客户端并且很难使用它。我使用以下打印语句测试了我的案例 1 条件:
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);
并且要知道是否有效,都没有奏效。我知道必须有一种方法,并希望有人能告诉我如何。我已经包含了代码的相关部分:
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");
和:
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;
在这种特殊情况下,我需要发送课程和部门。还有更好的方法吗?这似乎有点乱。如果是这样,你能告诉我一个更简化的版本吗?