vc api TCP&UDP—helloworld

TCP_server:

#include<windows.h>  

 #pragma comment (lib, "ws2_32")//显式连接套接字库  

  

 int main(int argc, char *argv) 

 { 

     WSADATA wsaData; 

     WSAStartup(MAKEWORD(2,2),&wsaData);//初始化套接字库  

      

     SOCKET s=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP); 

      

     sockaddr_in socketaddr; 

     socketaddr.sin_family = PF_INET; 

     socketaddr.sin_addr.S_un.S_addr = inet_addr("127.1.1.0"); 

     socketaddr.sin_port = htons(827); 

      

     bind(s,(SOCKADDR*)&socketaddr,sizeof(SOCKADDR)); 

      

     listen(s,1); 

      

     SOCKADDR clientAddr; 

     int nSize = sizeof(SOCKADDR); 

     SOCKET clientSock; 

     clientSock = accept(s,(SOCKADDR*)&clientAddr,&nSize); 

      

     send(clientSock,"hello client \r\n",strlen("hello client \r\n")+sizeof(char),NULL); 

      

     closesocket(clientSock); 

     closesocket(s); 

      

     WSACleanup();//释放套接字库  

      

     return 0; 

 }


 

TCP_client:

#include<stdio.h>  

 #include<winsock.h>  

 #pragma comment (lib,"ws2_32")//显示连接套接字库  

  

 int main() 

 { 

     WSADATA wsaData; 

     WSAStartup(MAKEWORD(2,2),&wsaData);//初始化套接字库  

      

     SOCKET s = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);//创建TCP套接字  

      

     sockaddr_in socketAddr; 

     socketAddr.sin_family = PF_INET; 

     socketAddr.sin_addr.S_un.S_addr = inet_addr("127.1.1.0"); 

     socketAddr.sin_port = htons(827); 

      

     connect(s,(SOCKADDR*)&socketAddr,sizeof(SOCKADDR)); 

      

     char szBuffer[MAXBYTE] = {0}; 

      

     recv(s,szBuffer,MAXBYTE,NULL); 

      

     printf("szBuffer = %s \r\n",szBuffer); 

      

     closesocket(s); 

      

     WSACleanup();//释放套接字库  

      

      system("pause");

     return 0; 

 } 

 vc api TCP&UDP—helloworld

 

 

 

UDP_server:

#include <winsock2.h>

#include <stdio.h>

#pragma comment(lib, "ws2_32.lib")



int main()

{

       WSADATA          wsData;

       SOCKET             server;

       SOCKADDR_IN sockAddr;



       int                          sClitAddLen;

       SOCKET                sClient;

       SOCKADDR_IN   sClientAddr;

       int                        tmp;

       char                       buffer[512];



       WSAStartup(MAKEWORD(2,2), &wsData); //初始化winsock

       server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); //创建winsock

       

       /*配置winsock*/

       sockAddr.sin_family         = AF_INET;

       sockAddr.sin_addr.s_addr = htonl(INADDR_ANY);

       sockAddr.sin_port            = htons(5503);

       memset(&(sockAddr.sin_zero), 0, sizeof(sockAddr.sin_zero));



      /*将winsock绑定到端口*/

       if(bind(server, (SOCKADDR *)&sockAddr, sizeof(SOCKADDR)) != 0)

       {

              printf("bind is failure\n");

              return 0;

       }



       listen(server, 10);       /*在该端口监听*/



       while(1)

       {

              memset(buffer, 0, sizeof(buffer));

              sClitAddLen = sizeof(SOCKADDR);



             /*响应客户端服务*/

              sClient = accept(server, (SOCKADDR *)&sClientAddr, &sClitAddLen);

              if(sClient == INVALID_SOCKET)

              {

                     printf("accept is failure\n");

              }

              else

              {

                     printf("Server is connect with a Client\n");



                     if(recv(sClient, buffer, 512, 0) == SOCKET_ERROR)

                     {

                            printf("recv failed!\n");

                     }

                     else

                     {                

                            printf("%s\n", buffer);

                     }

              }

              closesocket(sClient);

       }

       closesocket(server);

       WSACleanup();



       return 0;

}


UDP_client:

#define _CRT_SECURE_NO_DEPRECATE //屏蔽scanf的警告

#include <winsock2.h>

#include <stdio.h>

#pragma comment(lib, "ws2_32.lib")



int main()

{

       int                         tmp;

       WSADATA            wsData;

       SOCKET               client;

       SOCKADDR_IN    sockAddr;

       char                       buffer[512];



       WSAStartup(MAKEWORD(2,2), &wsData);   //初始化winsock

       client = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); //创建winsock



       /*配置winsock*/

       sockAddr.sin_family        = AF_INET;

       sockAddr.sin_addr.s_addr = inet_addr("127.0.0.1");

       sockAddr.sin_port           = htons(5503);

       memset(&(sockAddr.sin_zero), 0, sizeof(sockAddr.sin_zero));



       /*连接到服务端*/

       if(connect(client, (SOCKADDR *)&sockAddr, sizeof(sockAddr)) == SOCKET_ERROR)

       {

              printf("connet is failure \n");

              return 0;

       }

       else

       {

              printf("connet with the Server \n");

       }



       scanf("%s",buffer,255);

       send(client, buffer, (int)strlen(buffer), 0);   /*向服务端发送数据*/



       /*关闭socket并释放其占用的资源*/

       closesocket(client);

       WSACleanup();



       return 0;

}




 

 

 

 

 

 

你可能感兴趣的:(helloworld)