gpt4 book ai didi

c - 尝试在c中将结构的一部分从tcp服务器发送到客户端

转载 作者:行者123 更新时间:2023-11-30 14:25:26 24 4
gpt4 key购买 nike

我正在尝试将结构的一部分传递给客户端,但遇到了困难。我使用以下打印语句测试了案例 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;

在这种特殊情况下,我需要发送类(class)和部门。还有更好的方法吗?这看起来有点乱。如果是这样,你能给我看一个更简化的版本吗?

最佳答案

您一定到处都有编译错误。

你不需要atoi。你想要itoa sprintf

但这可能是您真正想要的:

tempCourse = data[i].course;
send(connected, &tempCourse, sizeof(tempCourse), 0);

(您提供 tempCourse 变量的地址及其在内存中的字节大小。请参阅 send )

(尽管您可能需要担心 network byte order )


或者,如果您希望将 .course 结构成员转换为字符串,请尝试以下操作:

sprintf(send_data, "%d", data[i].course);
send(connected, send_data, strlen(send_data), 0);

关于c - 尝试在c中将结构的一部分从tcp服务器发送到客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10364732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com