我正在用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) 我有一个带有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,但我很不走运.我错了吗?