|
모라 님이 쓰신 글 :
: 거참 ftp를 이용하여 내용물을 제쪽으로 보내는데,
: 이번엔 받는가 싶더니 buf2의 내용물을 보니 알수없는 것들만 받네요.
: 그리고 다시 1024만큼 받고 accept에서 멈추어 버리네요.
: 제 이번 소스에도 문제가 있는건가요?
: c++지만 사실 빌더로 쓸거라 이쪽에 물어봅니다.
:
:
: -------------------------------------------------------
:
: ascii
: quote port xxx.xxx.xxx.xxx.xx.xx (제쪽 아이피 4643포트.)
: quote list -aR
:
: 제쪽 서버 대기 소스------------------------------------------------------------
: SOCKET s;
: SOCKADDR_IN addr;
: SOCKADDR_IN clientAddr;
:
: char buf2[1024];
: int i,len,len2;
: int nClientAddrLen;
:
: s=socket(AF_INET, SOCK_STREAM, 0);
:
: if ( s != INVALID_SOCKET ){
:
:
: addr.sin_family = AF_INET;
: addr.sin_port = htons(4643);
: addr.sin_addr.s_addr = inet_addr("xxx.104.xx.23");
:
:
: if( bind(s, (LPSOCKADDR)&addr, sizeof(addr)) != SOCKET_ERROR ){
:
: FILE *fp;
: fp = fopen("test.pck", "wb");
:
: if(listen(s,10)!=SOCKET_ERROR){
:
: nClientAddrLen=sizeof(clientAddr);
:
: while(1){
: len3=accept(s,(LPSOCKADDR)&clientAddr,&nClientAddrLen);
:
: if(len3<=0) break;
: read(len3, buf2, sizeof(buf2));
: fwrite(buf2, sizeof(buf2), 1, fp);
:
: }
: fclose(fp);
음 혹시나 해서 실험을 해보니 먼저 답변이 틀렸군요^^
그래서 먼저답변을 지웁니다.
요즘은 콤포넌트로 하다보니까 착각을 했네요.
accept(); 문장에서 connection 을 계속 기다리고 있네요
len3=accept(s,(LPSOCKADDR)&clientAddr,&nClientAddrLen);
if(len3<=0) return;
else
{
while(1)
{
read(len3, buf2, sizeof(buf2));
fwrite(buf2, sizeof(buf2), 1, fp);
if(빠져나오는 조건) break;
}
}
fclose(fp);
이런식이 될거 같네요
|