printf("what is your name?");
gets(send_name);
strcpy(send_name2, strcat("You are connected to ", send_name));
send(connected, send_name2, strlen(send_name2), 0);
其他可执行文件未收到我发送的内容...
nbytes_recieved = recv(sock, recv_name, 50 ,0);
recv_name[nbytes_recieved] = '\0';
这是我在客户端代码中使用的代码,让它接收字符串。
谢谢, SIDD
答案 0 :(得分:4)
strcat
期望第一个参数是可写缓冲区。你给它的是一个常量字符串,可能存储在进程的只读区域中。该函数尝试在此常量字符串之后立即写入,这会导致内存访问冲突。
答案 1 :(得分:2)
EXC_BAD_ACCESS
等同于分段错误,通常是NULL指针取消引用,或访问未分配给进程的内存。如果recv_name
太小而无法容纳收到的所有字节加上终止'\ 0',则可能会导致这种情况。
要开始调试,请使用调试符号进行编译,然后在该代码中的各个点开始检查recv_name的内容。