请教一个关于socket的小问题
msenb 2005-08-24 09:25:30 这个问题我弄了一天,还是没弄明白
我写一个服务器/客户端 小程序,
功能是: 客户端输入用户名和密码,传送给服务器,服务器经过认证,返回给客户端一个结果值
客户端的一段程序如下:
/*****************/
int Authresult;
……
scanf("%s",InputUserName);
UserNameLen=strlen(InputUserName);
if( (write(KTS_sock,&UserNameLen,4)==0) )
break;
if( write(KTS_sock,InputUserName,UserNameLen+1)==0)
break ;
Passwd = getpass("Password:");
PasswdLen=strlen(Passwd);
if( (write(KTS_sock,&PasswdLen,4)==0) )
break;
if( write(KTS_sock,Passwd,PasswdLen+1)==0)
break ;
read(KTS_sock,&AuthResult,4);
printf("auth result is : %d\n",AuthResult);
/************************************/
服务器上的程序如下
/**************************************/
if( (read(KTS_sock,&UserNameLen,4)==0) )
break;
if( read(KTS_sock,UserName,UserNameLen+1)==0)
break ;
if( (write(KTS_sock,&PasswdLen,4)==0) )
break;
if( write(KTS_sock,Passwd,PasswdLen+1)==0)
break ;
AuthResult=auth(UserName,Passwd);/*一个认证函数,返回成功或者1,失败0*/
read(KTS_sock,&AuthResult,4);
/**************************/
程序都可以编译运行,现在的问题是,客户端向服务器端写的四个数据,服务器都可以正常受到,但是客户端却收不到服务器送的 result 。
由于初学这个东西,对这里面还不是很清楚,不知道是阻塞I/O的什么问题还是什么原因,到了第五次传送的时候就失败了,也没有抱错