【发布时间】:2013-04-08 12:17:34
【问题描述】:
我写了一个有两个线程的服务器程序。一个线程从客户端接收数据,另一个线程向客户端发送数据。两个线程都包含一个无限循环来发送和接收数据。
我的问题是,服务器接受连接并创建用于发送数据的线程,但是,我遇到分段错误并且服务器终止。为什么?
发送线程的代码是:
void *send_data(void *num)
{
int *sock_s=(int *) num;
int sock=*sock_s;
char msg[50];
while(1)
{
fgets(msg,50,stdin);
printf("sending data");
if(strcmp(msg,"exit")==0)
{
break;
}
send(sock,msg,sizeof(msg),0);
}
send(sock,msg,strlen(msg),0);
}
以上线程创建者:
status_s=pthread_create(&thread_s,NULL,send_data,(void *)client_sock);
【问题讨论】:
-
client_sock 的数据类型是什么?
标签: c multithreading sockets segmentation-fault