以下代码.怎么接收多条数据..高人解答!!

时间:2008-06-20 14:45:47   来源:论坛整理  作者:  编辑:chinaitzhe
怎么才能接收多条数据..现在此代码.服务器发一条可以收.但发第二条就收不了了.????
#include "stdafx.h"
#include <iostream>
#include"initsock.h"
#include <stdio.h>
using namespace std;
CInitSock initSock;

int _tmain(int argc, _TCHAR* argv[])
{

//创建套节字
SOCKET s = ::socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(s == INVALID_SOCKET)
{
printf("Failed socket() \n");
return 0;
}
//填写远程地址信息
sockaddr_in servAddr;
servAddr.sin_family = AF_INET;
servAddr.sin_port =htons(4567);

servAddr.sin_addr.S_un.S_addr = inet_addr("192.168.1.189");
if(::connect(s, (sockaddr*)&servAddr, sizeof(servAddr)) == -1)
{
printf(" Failed connect() \n");
return 0;
}

//接收数据
char buff[256];
int nRecv ,n = 1 ;

//while(n>0)
//{
nRecv = ::recv (s,buff,256,0);
//
//}
buff[nRecv] = '/0';
printf("接收到数据:%s",buff);

//关闭套节字
::closesocket (s);
cin.get();
return 0;

}


网友回复:while(n>0)
{
nRecv = ::recv (s,buff,256,0);
buff[nRecv] = '/0';
printf("接收到数据:%s",buff);

}

网友回复:哦.真是..原来是下面那两句放错位置了.是吧.高人.小弟初学..可否讲下思路.
!!!给分!!!
网友回复:啥思路, 收一条, 输出一条呗!
但应根据需要设置条件使while循环结束.
网友回复:哦.呵呵..
buff[nRecv] = '/0';
这句子是管什么用的..
还有一个问题,服务器先关后.客户这头就无限接收服务器发的最后一条.是哪里出了问题
关键字:以下,代码,接收,数据,高人,

相关文章

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面