c - 我正在尝试用 c 和套接字制作一个简单的聊天程序。当我在几件事之后运行它时,它说程序接收到信号 EXC_BAD_ACCESS

标签 c sockets tcp client-server exc-bad-access

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';

这是我在客户端代码中用来让它接收字符串的代码。

谢谢, 西德

最佳答案

strcat 需要一个可写缓冲区作为它的第一个参数。你给它的是一个常量字符串,可能存储在进程的只读区域的某个地方。该函数尝试在此常量字符串之后立即写入,这会导致内存访问冲突。

关于c - 我正在尝试用 c 和套接字制作一个简单的聊天程序。当我在几件事之后运行它时,它说程序接收到信号 EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7275168/

相关文章:

c - -rdynamic 仅用于选择符号?

连接到服务器时的 Java BufferedWriter - 空指针异常 - 聊天应用程序

Java TCP重传超时

c# - 处理在不同线程中读取的 TCP Socket 数据

.net - Web 场服务器使用的 WCF。错误 : The socket connection was aborted

具有抽象数据类型的 C 双链表

c - 将 char* 作为参数传递给动态调用的函数会产生运行时错误

c - 为子进程设置时间限制

iphone - 连接广播而不是服务器后AsyncUdpSocket接收数据的小问题

C#如何连接公网ip