TCP编程

来源:互联网 发布:算法类的书籍推荐 编辑:程序博客网 时间:2024/05/29 12:07

以下是服务器端接受和发送数据的核心函数

void Service(LPVOID lpv){
SOCKET acceptfd=(SOCKET)lpv;//lpv为监听的套接字接口
const char *msg="hello client";
char response[4096];//数据的缓冲区
memset(response,0,sizeof(response));//初始化缓冲区

while(acceptfd!=SOCKET_ERROR)
{
recv(acceptfd,response,sizeof(response),0);//接受客户机的数据
if(strcmp(response,"hello server"))//如果不相同
{
printf("from client: %s \n",response);//显示输出接受到的数据
}
else
{
send(acceptfd,msg,strlen(msg)+1,0);//向客户端发送数据
}

//----------请注意下面的两行
//fgets(response,sizeof(response),stdin);//response即用于接受,也用于发送的数据缓冲
//send(acceptfd,response,sizeof(response),0);
}
closesocket(acceptfd);
}
我希望程序在接收客户端数据的同时,也可以向客户端发送数据,但是加了注释的那两行后,程序段出现的现象是:
必须等到服务器端输入了数据之后,服务器端才会显示出来客户端发送的数据!
大家帮忙指点,交个朋友。qq:2493393471
原创粉丝点击