当前位置: 技术问答>linux和unix
为什么我的线程不能正常工作?
来源: 互联网 发布时间:2015-05-08
本文导语: 我本来想使用线程来提高性能, 可是不能正常工作! 线程根本没有启动,运行结果如下: linux:/home/picpic/udpsocket # gcc -o test test.c -lpthread test.c: In function `main': test.c:57: warning: passing arg 2 of `bind' from incompatible...
我本来想使用线程来提高性能,
可是不能正常工作!
线程根本没有启动,运行结果如下:
linux:/home/picpic/udpsocket # gcc -o test test.c -lpthread
test.c: In function `main':
test.c:57: warning: passing arg 2 of `bind' from incompatible pointer type
test.c:73: warning: passing arg 5 of `sendto' from incompatible pointer type
test.c: In function `receive':
test.c:87: warning: passing arg 5 of `recvfrom' from incompatible pointer type
linux:/home/picpic/udpsocket # ls
. .. test test.c
linux:/home/picpic/udpsocket # ./test 127.0.0.1 8000 127.0.0.1 3000
start to receive...(不动了...)
我的想法是用一个线程来接收udp packet.
main 线程用于发送,没能成功。
本程序使用方式:test 目标ip 目标port 本地ip 本地port
然后进行消息发送。
我的代码:
#include
#include
#include
#include
#include
#include
#define BUFLEN 255
struct sockaddr_in peeraddr,recvaddr,localaddr;
int sockfd;
char recmsg[BUFLEN+1];
int socklen,n;
void receive(void);
int main(int argc,char **argv)
{
pthread_attr_t tattr;
pthread_t tid;
if(argc!=5)
{
printf("%s n",argv[0]);
exit(0);
}
sockfd=socket(AF_INET,SOCK_DGRAM,0);
if(sockfd
可是不能正常工作!
线程根本没有启动,运行结果如下:
linux:/home/picpic/udpsocket # gcc -o test test.c -lpthread
test.c: In function `main':
test.c:57: warning: passing arg 2 of `bind' from incompatible pointer type
test.c:73: warning: passing arg 5 of `sendto' from incompatible pointer type
test.c: In function `receive':
test.c:87: warning: passing arg 5 of `recvfrom' from incompatible pointer type
linux:/home/picpic/udpsocket # ls
. .. test test.c
linux:/home/picpic/udpsocket # ./test 127.0.0.1 8000 127.0.0.1 3000
start to receive...(不动了...)
我的想法是用一个线程来接收udp packet.
main 线程用于发送,没能成功。
本程序使用方式:test 目标ip 目标port 本地ip 本地port
然后进行消息发送。
我的代码:
#include
#include
#include
#include
#include
#include
#define BUFLEN 255
struct sockaddr_in peeraddr,recvaddr,localaddr;
int sockfd;
char recmsg[BUFLEN+1];
int socklen,n;
void receive(void);
int main(int argc,char **argv)
{
pthread_attr_t tattr;
pthread_t tid;
if(argc!=5)
{
printf("%s n",argv[0]);
exit(0);
}
sockfd=socket(AF_INET,SOCK_DGRAM,0);
if(sockfd