小编RDe*_*per的帖子

C聊天程序得到错误分段错误(核心转储)

我正在用C语言在客户端和服务器之间构建一个聊天程序.客户端将连接到服务器,向其发送消息.然后服务器将响应该meesage.

如果有另一个客户端连接到服务器,则新连接将创建一个新线程.所以我使用pthread.h在C中构建一个多线程聊天程序.请参阅下面的server.c和client.c代码以获取更多详细信息.

server.c

#include <pthread.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

#define PORT 7778

void error(char *msg){
    perror(msg);
    exit(1);
}

void *clientHandler(void*);

int main(){
    printf("INFO enter the main()\n");
    int sockfd, newsockfd, clilen;
    char buffer[256];
    struct sockaddr_in serv_addr, cli_addr;
    int n, threadID;
    pthread_t interrupt;

    printf("INFO before calling socket()\n");
    sockfd = socket(AF_INET, SOCK_STREAM, 0);
        printf("INFO after calling socket()\n");
    if(sockfd < 0)
        error("ERROR opening socket\n");

    printf("INFO before calling bzero()\n");
    bzero((char*) &serv_addr, sizeof(serv_addr));
    printf("INFO after calling socket()\n");

    serv_addr.sin_family = AF_INET;
    serv_addr.sin_addr.s_addr = …
Run Code Online (Sandbox Code Playgroud)

c runtime-error segmentation-fault

1
推荐指数
1
解决办法
887
查看次数

将eval()转换为JSON.parse()时出错

我有一个带有eval()的代码段,如下所示:

var data = "{listUpdated:[],listConflictOrMerge:[]}"; //returned from Ajax

var results = eval("(" + data + ")");

console.log(results)
Run Code Online (Sandbox Code Playgroud)

如您所见,数据是我从ajax请求返回的输入值.使用eval()时,可以将其解析为2个数组对象.

现在我不想再使用eval()了,所以我尝试使用JSON.parse().但是,有一个错误.

var data = "{listUpdated:[],listConflictOrMerge:[]}"; //returned from Ajax

var results = JSON.parse(data);

console.log(results)
Run Code Online (Sandbox Code Playgroud)

我的目的是我不想再使用eval()来解析数据.

  • 那么,有什么办法可以做到吗?

  • 我尝试使用JSON,但我很不走运.我错了吗?

javascript ajax parsing json eval

-1
推荐指数
1
解决办法
44
查看次数

标签 统计

ajax ×1

c ×1

eval ×1

javascript ×1

json ×1

parsing ×1

runtime-error ×1

segmentation-fault ×1