//---------------------------------------------------------------------------
#include <winsock.h>
#include <stdio.h>
#pragma hdrstop
#include <condefs.h>

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
 int sock,length;
 struct sockaddr_in server;
 int msgsock;
 char buf[1024];
 int rval;
 WORD wVersionRequested;
 WSADATA wsaData;
 wVersionRequested=MAKEWORD(2,0);
 int err=WSAStartup(wVersionRequested,&wsaData);
 if(err==-1)
   {
   perror("WSAStartup");
   exit(1);
   }
 sock=socket(AF_INET,SOCK_STREAM,0);
 if (sock<0)
   {
   perror("Opening stream socket");
   exit(1);
   }
 server.sin_family=AF_INET;
 server.sin_port=htons(3223);
 server.sin_addr.s_addr=INADDR_ANY;
 if(bind(sock,(const struct sockaddr *)&server,sizeof(server))<0)
   {
   perror("binding stream socket");
   exit(1);
   }
 length=sizeof(server);
 if(getsockname(sock,(struct sockaddr*)&server,&length)<0)
   {
   perror("GETING socket name");
   exit(1);
   }
 printf("socket port #%d\n",ntohs(server.sin_port));
 listen(sock,5);
 do
   {
   msgsock=accept(sock,(struct socketaddr*) 0,(int *) 0);
   printf("client connected successful.\n");
   if(msgsock==-1)
     perror("accept");
   else
     do
       {
       memset(buf,0,sizeof(buf));
       rval=recv(msgsock,buf,1024,0);
       printf("rval=%d\n",rval);
       if (rval<0)
         {

         if(rval==WSAEINPROGRESS)
           printf("Hello1\n");
         if(rval==WSAENETRESET)
           printf("Hello2\n");
         if(rval==WSAENOTSOCK)
           printf("Hello3\n");
         if(rval==WSAEOPNOTSUPP)
           printf("Hello4\n");
         perror("reading stream message");
         getchar();
         exit(1);
         }
       else if(rval==0)
         printf("ending connetion\n");
       else
         printf("---->%s\n",buf);
       }while(rval!=0);
     closesocket(msgsock);
   }while(true);
 WSACleanup();
 return 0;

 }
//---------------------------------------------------------------------------



//---------------------------------------------------------------------------

#include <winsock.h>
#include <stdio.h>
#pragma hdrstop
#include <condefs.h>

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
 WORD wVersionRequested;
 WSADATA wsaData;
 wVersionRequested=MAKEWORD(2,0);
 int err=WSAStartup(wVersionRequested,&wsaData);
 if(err==-1)
   {
   perror("WSAStartup");
   exit(1);
   }
 int sock,length,msgsock;
 struct sockaddr_in server;
 char buf[]="THIS IS A TEST.";
 sock=socket(AF_INET,SOCK_STREAM,0);
 if(sock<0)
   {
   perror("Opening  stream socket ");
   exit(1);
   }
 server.sin_family=AF_INET;
 server.sin_port=htons(3223);
 server.sin_addr.s_addr=inet_addr("172.28.24.173");
 msgsock=connect(sock,(struct sockaddr*)&server,sizeof(server));
 length=sizeof(buf);
 int rval=send(sock,buf,length,0);
 if(rval!=length)
   {
   perror("Sending stream error");
   getchar();
   exit(1);
   }
 closesocket(msgsock);
 WSACleanup();
 return 0;
 
}
//---------------------------------------------------------------------------
这是用winsock传输数据的一个简单程序。
我现在想从客户端发送一个数据包到服务器端,再从服务器端(对接收到的数据处理后--处理我自己会做)返回一个数据包到客户端要做什么修改。