win32 TCP网络文件传输服务器端1.23
2013-01-21 15:29
288 查看
#include<stdio.h>
#include<stdlib.h>
#pragmacomment(lib,"ws2_32.lib")
#definePORT6666
#defineIPADDR"127.0.0.1"
#defineBACKLOG20
intmain(void)
{
WSADATAwsadata;
WSAStartup(MAKEWORD(2,0),&wsadata);
SOCKETsock_trans=socket(AF_INET,SOCK_STREAM,0);
if(sock_trans<0)
{
perror("socket");
exit(1);
}
SOCKADDR_INsaddr;
saddr.sin_family=AF_INET;
saddr.sin_port=htons(PORT);
saddr.sin_addr.S_un.S_addr=inet_addr(IPADDR);
intsadlen=sizeof(saddr);
FILE*fp=NULL;
fp=fopen("e://test.txt","w+");
if(fp==NULL)
{
perror("openfile:");
exit(4);
}
if(bind(sock_trans,(SOCKADDR*)(&saddr),sadlen)==SOCKET_ERROR)
{
perror("bind:");
exit(2);
}
elseprintf("bindportok!\n");
//intvlisten=50;
if(listen(sock_trans,20)==SOCKET_ERROR)
{
perror("listen");
exit(3);
}
else
printf("nowlistenning.....\n");
//printf("%d",listen(sock_trans,20));
intsaddrlen=sizeof(saddr);
SOCKETnewsock=accept(sock_trans,(SOCKADDR*)&saddr,&saddrlen);
printf("catchfilenow....");
charbuf[1024]={0};
ZeroMemory(buf,1024);
intrelen=0;
//测试程序的酱油语句,无视之。
//recv(newsock,buf,50,0);
//printf("%s",buf);
//printf("\nifputthisline,theprogramiserror!");
Sleep(3000);
while(1)
{
relen=recv(newsock,buf,1024,0);
fwrite(buf,1,relen,fp);
printf("接受了一次!\n");
fflush(fp);
//ZeroMemory(buf,50);
if(relen==0)
{
break;
}
printf("接受了%d次!\n",relen);
}
fclose(fp);
closesocket(newsock);
closesocket(sock_trans);
WSACleanup();
system("pause")
return0;
}
相关文章推荐
- win32 TCP网络文件传输服务器端1.23
- win32 TCP网络文件传输服务器端1.23
- win32 tcp文件传输并发服务器
- win32 tcp文件传输并发服务器
- win32 tcp文件传输并发服务器
- java tcp网络通信 传输文件
- Linux网络编程之使用TCP传输文件
- Qt5 基于TCP传输的发送/接收文件服务器(支持多客户端)
- TCP文件传输MFC服务器篇 4000
- Qt5 基于TCP传输的发送/接收文件服务器(支持多客户端)
- Qt5 基于TCP传输的发送/接收文件服务器(支持多客户端)
- TCP数据传输(四):上传文件操作(将客户端的文件发送到服务器)
- 基于TCP网络通信的自动升级程序源码分析-服务器发送文件
- 【RL-TCPnet网络教程】第38章 TFTP简单文件传输基础知识
- 网络编程 基于TCP的多文件传输程序(二)
- 网络编程中的socket中关于TCP下的文件传输:EOF问题
- QT+Opencv视频文件TCP网络传输
- C# TcpClient网络编程传输文件
- 基于TCP网络通信的自动升级程序源码分析-服务器发送文件
- linux 网络编程 Tcp文件服务器