VC++ Socket编程 简单的Tcp/ip客户端

#include <windows.h>
#include <iostream.h>
#include <winsock.h>
#define NO_FLAGS_SET 0
#define PORT (u_short) 44965
#define DEST_IP_ADDR "192.168.10.158" //Server address
INT main(VOID)
{
  WSADATA Data;
  SOCKADDR_IN destSockAddr;
  SOCKET destSocket;
  unsigned long destAddr;
  int status;
  int numsnt;
  char *toSendtxt="Test String";
  /* initialize the Windows Socket DLL */
  status=WSAStartup(MAKEWORD(1, 1), &Data);
  if (status != 0)
    cerr << "ERROR: WSAStartup unsuccessful"
      << endl;
  /* convert IP address into in_addr form */
  destAddr=inet_addr(DEST_IP_ADDR);
  /* copy destAddr into sockaddr_in structure */
  memcpy(&destSockAddr.sin_addr,
    &destAddr, sizeof(destAddr));
  /* specify the port portion of the address */
  destSockAddr.sin_port=htons(PORT);
  /* specify the address family as Internet */
  destSockAddr.sin_family=AF_INET;
  /* create a socket */
  destSocket=socket(AF_INET, SOCK_STREAM, 0);
  if (destSocket == INVALID_SOCKET)
  {
    cerr << "ERROR: socket unsuccessful" << endl;
    status=WSACleanup();
    if (status == SOCKET_ERROR)
      cerr << "ERROR: WSACleanup unsuccessful"
        << endl;
    return(1);
  }
  cout << "Trying to connect to IP Address: "
    << DEST_IP_ADDR << endl;
  /* connect to the server */
  status=connect(destSocket,
    (LPSOCKADDR) &destSockAddr,
    sizeof(destSockAddr));
  if (status == SOCKET_ERROR)
  {
    cerr << "ERROR: connect unsuccessful" << endl;
    status=closesocket(destSocket);
    if (status == SOCKET_ERROR)
      cerr << "ERROR: closesocket unsuccessful"
        << endl;
    status=WSACleanup();
    if (status == SOCKET_ERROR)
      cerr << "ERROR: WSACleanup unsuccessful"
        << endl;
    return(1);
  }
  cout << "Connected..." << endl;
  while(1)
  {
    cout << "Sending..." << endl;
    numsnt=send(destSocket, toSendtxt,
      strlen(toSendtxt) + 1, NO_FLAGS_SET);
    if (numsnt != (int)strlen(toSendtxt) + 1)
    {
      cout << "Connection terminated" << endl;
      status=closesocket(destSocket);
      if (status == SOCKET_ERROR)
        cerr << "ERROR: closesocket unsuccessful"
          << endl;
      status=WSACleanup();
      if (status == SOCKET_ERROR)
        cerr << "ERROR: WSACleanup unsuccessful"
          << endl;
      return(1);
    }
  /* Wait before sending the message again */
  Sleep(4800);
  } /* while */
}

转载于:https://www.cnblogs.com/NRabbit/archive/2009/12/20/1736156.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值