日期:2014-05-16  浏览次数:20678 次

linux socket 中 accept() 问题
最近在看nc的代码   又学了点linux   c语言   于是就写个小的shell重定向练练手
代码如下
#include   <stdio.h>
#include   <stdlib.h>
#include   <unistd.h>
#include   <sys/types.h>
#include   <sys/socket.h>
#include   <netinet/in.h>
#include   <netdb.h>
#include   <time.h>
#include   <strings.h>


//netcat     [shell]   [port]  
int   main(int   argv   ,   char**   args)
{
                struct   sockaddr_in   asddr   ,   m_rec;
                int   in[2],out[2];
                int   pid   ,   len;
               
                int   m_socket   ,   m_return   ,EchoCnt,BufferCnt;  
                char     RecvBuffer[1];
                char       Buffer[1024];
                char         EchoBuffer[5];
                char   readbuf[1024];
                int   readlen   ,   bytesSend;
               
                if(argv   <   3)
                                {
                                                printf( "netcat     [shell]   [port]\n ");
                                                exit(0);
                                }
                                pipe(in);
                                pipe(out);
                                len   =   sizeof(struct   sockaddr_in);
                               
                m_socket   =   socket(PF_INET   ,SOCK_STREAM   ,   0);  
                if(-1   ==   m_socket)
                                  {
                                                    perror( "socket   error: ");