[問題] 請教一個thread的問題
小弟斗膽,請大家幫我看一下,我的thread哪邊用錯了
這是一個socket 程式, 其中 receive() 是用thread 來跑
此程式為client 端,他要接收來自server 端的文字訊息
而且也能發送文字訊息給 server
int fd; //global variable
void* receive(void* id) //讓thread一直檢查,資料是否能從 server 讀取
{
char rcvbuf[1024]; //如果有資料從server來,那就print出來
int i;
while(1)
{
bzero(rcvbuf,sizeof(rcvbuf));
if( (i=read(fd,rcvbuf,sizeof(rcvbuf))) >0)
printf ("msg from [server]:%s",rcvbuf);
}
pthread_exit(NULL);
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
以下這一段 是main() 中,關於thread的部份
pthread_t threads[2];
connect(fd,(struct sockaddr*)&addr,sizeof(addr))
printf ("\n,the message from server:%s\n",msg);
pthread_create(&threads[0], NULL, receive, (void *)1);
while(1) // 此段是用來 input 文字訊息給 server 的
{
bzero(sndbuf,sizeof(sndbuf));
printf ("input msg to server:");
fgets (sndbuf,sizeof(sndbuf),stdin);
write (fd,sndbuf,sizeof(sndbuf));
}
我想問一下,我的thread這樣寫,有問題嗎
因為我發現,我的receive() 不太會跑 (照常理應該是一直在run)
--
.''`.
: :' :
`. `'`
`- Debian - 暴怒勿言,言必傷人 狂喜勿語,語必浮誇
--
┌╗┬─ Origin:《Ψ義守觀山風情Ψ》<bbs.isu.edu.tw> ─┬╖╔╗
╚┘╙─ From : 124.8.143.66 ──────────╛└╝╝
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章