int recvsocket=InitSocket_Server(RECVPORT);//初始化接受端口
ret=pthread_create(&pthread_id,NULL,(void *)pthread_1,(void*)&recvsocket);
ret=pthread_create(&pthread_id,NULL,(void *)pthread_1,(void*)&recvsocket);
其中pthread_1的定义如下:
void pthread_1(int *socket)
{
SelectRecv(socket, (unsigned char *)&t_package, sizeof(struct P_pa_2),0);
send(socket,(unsigned char *)&s_msg,sizeof(struct PDU_MSG),0);
....
}
void pthread_1(int *socket)
{
SelectRecv(socket, (unsigned char *)&t_package, sizeof(struct P_pa_2),0);
send(socket,(unsigned char *)&s_msg,sizeof(struct PDU_MSG),0);
....
}
问:S线程中是否能成功收发数据?
首先根据send的返回值显示数据是发送出去了,但是对方并没有收到,而对方发送的数据也没有收到,为什么呢?
首先根据send的返回值显示数据是发送出去了,但是对方并没有收到,而对方发送的数据也没有收到,为什么呢?
在LINUX中,线程之间是不能共享SOCKET连接的,如果着的需要进行socket通讯,只能在进入线程后,重新初始化一个SOCKET连接!