资源简介

windows网络编程serverandclient猜拳游戏

资源截图

代码片段和文件信息


#include “stdafx.h“
#include 
#include 
#pragma comment(lib“WS2_32.lib“)

#define BUF_SIZE 1024
void main(void)
{
   WSADATA              wsaData;
   SOCKET               ListeningSocket;
   SOCKET               NewConnection;
   SOCKADDR_IN          ServerAddr;
   SOCKADDR_IN          ClientAddr;
   int                  ClientAddrLen;
   int                  Port = 5150;
   int                  Ret;
   char                 DataBuffer[ BUF_SIZE];

   // Initialize Winsock version 2.2

   if ((Ret = WSAStartup(MAKEWORD(22) &wsaData)) != 0)
   {
      // NOTE: Since Winsock failed to load we cannot use WSAGetLastError 
      // to determine the error code as is normally done when a Winsock 
      // API fails. We have to report the return status of the function.

      printf(“WSAStartup failed with error %d\n“ Ret);
      return;
   }
   printf(“successful 1\n“);
   // Create a new socket to listening for client connections.
 
   if ((ListeningSocket = socket(AF_INET SOCK_STREAM IPPROTO_TCP)) 
       == INVALID_SOCKET)
   {
      printf(“socket failed with error %d\n“ WSAGetLastError());
      WSACleanup();
      return;
   } 
   printf(“successful 2\n“);
   // Setup a SOCKADDR_IN structure that will tell bind that we
   // want to listen for connections on all interfaces using port
   // 5150. Notice how we convert the Port variable from host byte
   // order to network byte order.

   ServerAddr.sin_family = AF_INET;
   ServerAddr.sin_port = htons(Port);    
   ServerAddr.sin_addr.s_addr = htonl(INADDR_ANY);

   // Associate the address information with the socket using bind.
   printf(“successful 3\n“);
   if (bind(ListeningSocket (SOCKADDR *)&ServerAddr sizeof(ServerAddr)) 
       == SOCKET_ERROR)
   {
      printf(“bind failed with error %d\n“ WSAGetLastError());
      closesocket(ListeningSocket);
      WSACleanup();
      return;
   }
   printf(“successful 4\n“);
   // Listen for client connections. We used a backlog of 5 which is
   // normal for many applications.

   if (listen(ListeningSocket 5) == SOCKET_ERROR)
   {
      printf(“listen failed with error %d\n“ WSAGetLastError());
      closesocket(ListeningSocket);
      WSACleanup();
      return;
   } 

   printf(“We are awaiting a connection on port %d.\n“ Port);

   // Accept a new connection when one arrives.
   
   ClientAddrLen=sizeof(ServerAddr);
   printf(“successful 5\n“);
   if ((NewConnection = accept(ListeningSocket (SOCKADDR *) &ClientAddr
                               &ClientAddrLen)) == INVALID_SOCKET)
   {
      printf(“accept failed with error %d\n“ WSAGetLastError());
      closesocket(ListeningSocket);
      WSACleanup();
      return;
   }


   printf(“We successfully got a connection from %s:%d.\n“
          inet_ntoa(ClientAddr.sin_addr) ntohs(ClientAddr.sin_port));

   // At this point you can do two things with these sockets. Await

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        7079  2014-10-14 18:55  guess\w.cpp
     文件        3758  2014-10-14 18:55  guess\ws.cpp
     目录           0  2014-11-03 20:04  guess\

评论

共有 条评论