发新话题
打印

[原创]windows 和 linux 传文件c源码

[原创]windows 和 linux 传文件c源码

文章作者:zhouzhen[E.S.T]
信息来源:http://zhouzhen.blogchina.com(信息来源就应该这样写)

好久前的代码,大家看看。别拿鸡蛋砸偶啊。偶怕怕~
[code]
/*
server.c
2004.5.18
for linux

zhouzhen

*/
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<sys/types.h>
#include<string.h>
#include<netinet/in.h>
#include<sys/socket.h>
#include<sys/wait.h>
#define SERVPORT 3333 //server port
#define BACKLOG 10   //max links
#define MAXDATAS 100
main()
{
  int sockfd,client_fd,recvbytes;   
  char buf[1024];
  int fd;
  int sin_size;
  int file_length;
  struct sockaddr_in my_addr;   
  struct sockaddr_in remote_addr;
  char filename[10] ;
  FILE * in ;   


  printf("******************************************
");
  printf("            server
");
  printf("******************************************
");

    if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
      {
          perror("Socket error!");exit(1);} //create a socket
      printf("Create a socket....
");


        my_addr.sin_family=AF_INET;
        my_addr.sin_port=htons(SERVPORT);
        my_addr.sin_addr.s_addr=INADDR_ANY;
        bzero(&(my_addr.sin_zero),8);
      
            //bind
       if(bind(sockfd,(struct sockaddr*)&my_addr,sizeof(struct sockaddr))==-1)
           {
                perror("bind error!");
                exit(1);
           }
          printf("binding ok...
");

       //listen
      if(listen(sockfd,BACKLOG)==-1)
          {
               perror("listen error!");
               exit(1);
          }

       printf("listening ....
");

while(1)
{
  sin_size=sizeof(struct sockaddr_in);
  printf("Receiving .....
");
  if((client_fd=accept(sockfd,(struct sockaddr*)&my_addr,&sin_size))==-1)
  {
      perror("accept error! ");
       exit(1);
  }
    printf("receive a connection from %s
",inet_ntoa(remote_addr.sin_addr) );
  
// 接受文件名长度
  if((recvbytes=recv(client_fd,&file_length,4,0))==-1)
   {
      perror("recv error!");
    exit(1);
  }
  
  // 接受文件名
  if((recvbytes=recv(client_fd, filename, file_length, 0))==-1)
   {
      perror("recv error!");
       exit(1);
  }
    // filename[recvbytes]=&#39;
安全就象毒品一样,上瘾了就戒不掉了 http://www.6code.net

TOP

当初老周来的时候 我以为老周就是Script Hack在行
聊天聊了几句 发觉是个厚道的人...
然后他又告诉我 他可以写程序的 我有点不敢相信 但是看起来这么厚道 又不可能在瞎说

事实证明 老周果然是有两把刷子的
qq310926是我唯一用号,除此之外有其他号码号自称邪八冰血封情,则非本人。

TOP

太好了,正是目前需要的。
学习代码中...
BLOG: http://blog.csdn.net/hkbyest

TOP

发新话题