高分请教高手?sock接收遇见字数唯-1?
bileg 2005-07-18 08:23:46 在cb中用套接字做服务器端程序设接如下:
声明
sockaddr_in LocalAdress;
SOCKET lissocket;
SOCKET mysocket[5];
初始化启用线程
lissocket=socket(PF_INET,SOCK_STREAM,0);
if(lissocket==INVALID_SOCKET)
{
// fflush(0);
ShowMessage("SOCKET faild!!");
} /////启动线程初始化
if ( bind( lissocket, (struct sockaddr *)&LocalAdress, sizeof(LocalAdress)) != 0 )
{ ShowMessage("Error: 绑定内部网络地址失败!\n");
closesocket( lissocket );
return;
} /////////错误处理
listen(lissocket,10); /////启动监听网络;
recvthread *pp=new recvthread(0);
接收处理:
int lien=sizeof(formmain->LocalAdress);
formmain->mysocket[0]=accept(formmain->lissocket,(sockaddr *)&(formmain->LocalAdress),&lien);
if(formmain->mysocket[0]==INVALID_SOCKET)
{ ShowMessage("error");
}
else
{ int len;
unsigned char buf2[5000];
unsigned char buf1[82];
formmain->msg->Caption="已有客户申请向我连接成功";
char s[20];
int num,p,numlen;
String str;
LPSTR strbuf;
while(1)
{
len=recv(formmain->mysocket[0],buf2,5000,0);
}
}为何程序接收过路邮器的数据包,能连接上, len却一直等于-1;而我自己局域网的字符发送却能收到,sock版本问题?套接字设置问题?RECV接收函数问题?请指教!!!!