zoukankan      html  css  js  c++  java
  • win32 TCP网络文件传输服务器端1.23

     


     

    #include<windows.h>
    #include<stdio.h>
    #include<stdlib.h>
    
    #pragma comment(lib,"ws2_32.lib")
    
    #define PORT 6666
    #define IPADDR "127.0.0.1"
    #define BACKLOG 20
    
    int main(void)
    {
    
    	WSADATA wsadata;
    	WSAStartup(MAKEWORD(2,0),&wsadata);
    	SOCKET sock_trans=socket(AF_INET,SOCK_STREAM,0);
    
    	if (sock_trans<0)
    	{
    
    	perror("socket");
    	exit(1);
    
    	}
    
    	SOCKADDR_IN saddr;
    	saddr.sin_family=AF_INET;
    	saddr.sin_port=htons(PORT);
    	saddr.sin_addr.S_un.S_addr=inet_addr(IPADDR);
    
    	int sadlen=sizeof(saddr);
    
    	FILE* fp=NULL;
    	fp=fopen("e://test.txt","w+");
    	if(fp==NULL)
    	{
    
    	perror("open file:");
    	exit(4);
    	}
    
    	if (bind(sock_trans,(SOCKADDR*)(&saddr),sadlen)==SOCKET_ERROR)
    	{
    
    	perror("bind:");
    	exit(2);
    
    	}
    	else printf ("bind port ok!\n");
    
    	//int vlisten=50;
    
    	if (listen(sock_trans,20)==SOCKET_ERROR)
    
    	{
    	perror("listen");
    	exit(3);
    	}
    
    	else
    	printf ("now listenning.....\n");
    
    	//printf ("%d",listen(sock_trans,20));
    
    	int saddrlen=sizeof(saddr);
    
    	SOCKET newsock=accept(sock_trans,(SOCKADDR*)&saddr,&saddrlen);
    
    	printf ("catch file now....");
    	char buf[1024]={0};
    	ZeroMemory(buf,1024);
    
    	int relen=0;
    
    	//测试程序的酱油语句,无视之。
    
    	//recv(newsock,buf,50,0);
    
    	// printf ("%s",buf);
    
    	// printf ("\nif put this line ,the program is error!");
    
    	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")
    
    	return 0;
    
    }
    
    


  • 相关阅读:
    深入PHP内核之全局变量
    关于PHP中的opcode
    深入PHP内核之opcode handler
    virtual memory exhausted: Cannot allocate memory
    Nginx配置error_page 404错误页面
    PHP 与 UTF-8
    define() vs const 该如何选择?
    CentOS安装配置Samba
    当···时发生了什么?
    PHP中curl的使用
  • 原文地址:https://www.cnblogs.com/wangyaning/p/4237048.html
Copyright © 2011-2022 走看看