⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tcpclient.cpp

📁 SMC takes a state machine stored in a .sm file and generates a State pattern in twelve programming l
💻 CPP
字号:
//// The contents of this file are subject to the Mozilla Public// License Version 1.1 (the "License"); you may not use this file// except in compliance with the License. You may obtain a copy// of the License at http://www.mozilla.org/MPL/// // Software distributed under the License is distributed on an// "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or// implied. See the License for the specific language governing// rights and limitations under the License.// // The Original Code is State Machine Compiler (SMC).// // The Initial Developer of the Original Code is Charles W. Rapp.// Portions created by Charles W. Rapp are// Copyright (C) 2000 - 2003 Charles W. Rapp.// All Rights Reserved.// // Contributor(s): //// Name//  TcpClient.cpp//// Description//  TCP client connection class implementation.//// RCS ID// $Id: TcpClient.cpp,v 1.5 2007/12/28 12:34:40 cwrapp Exp $//// CHANGE LOG// $Log: TcpClient.cpp,v $// Revision 1.5  2007/12/28 12:34:40  cwrapp// Version 5.0.1 check-in.//// Revision 1.4  2005/05/28 13:31:18  cwrapp// Updated C++ examples.//// Revision 1.0  2003/12/14 19:39:43  charlesr// Initial revision//#include "TcpClient.h"#if defined (WIN32)#include <winsock2.h>#else#  if defined(__sun)#include <sys/systeminfo.h>#  else#include <unistd.h>#  endif#include <netdb.h>#endif// Const declarations.const static long MAX_HOSTNAME_LEN = 257;//---------------------------------------------------------------// TcpClient(TcpConnectionListener&) (Public)// Create an unconnected TCP client.//TcpClient::TcpClient(TcpConnectionListener& listener): TcpConnection(listener){}//---------------------------------------------------------------// ~TcpClient() (Public)// Destructor.//TcpClient::~TcpClient(){}//---------------------------------------------------------------// getServerAddress() const (Public)// This client is connected to this TCP service.//const sockaddr_in& TcpClient::getServerAddress() const{    return(_farAddress);} // end of TcpClient::getServerAddress() const//---------------------------------------------------------------// getClientPort() const (Public)// This client's TCP port.//unsigned short TcpClient::getClientPort() const{    return(_nearAddress.sin_port);} // end of TcpClient::getClientPort() const//---------------------------------------------------------------// open(unsigned short) (Public)// Open a client connection to a local TCP service.//void TcpClient::open(unsigned short port){    sockaddr_in address;    char hostname[MAX_HOSTNAME_LEN];    hostent *hostentry;    // Get the local address.#if defined(__sun)    (void) sysinfo(SI_HOSTNAME, hostname, MAX_HOSTNAME_LEN);#else    (void) gethostname(hostname, MAX_HOSTNAME_LEN);#endif    hostentry = gethostbyname(hostname);    // Fill in the destination address.    address.sin_port = port;    (void) memcpy(&(address.sin_addr.s_addr),                  hostentry->h_addr_list[0],                  4);    activeOpen(address);    return;} // end of TcpClient::open(unsigned short)//---------------------------------------------------------------// open(const sockaddr_in&) (Public)// Open a client connection to a remove TCP service.//void TcpClient::open(const sockaddr_in& address){    activeOpen(address);    return;} // end of TcpClient::open(const sockaddr_in&)//---------------------------------------------------------------// TcpClient(const sockaddr_in&, ...) (Private)// Create an "accepted" client connection.//TcpClient::TcpClient(const sockaddr_in& far_address,                     const sockaddr_in& near_address,#if defined(WIN32)                     unsigned short actual_port,                     SOCKET udp_socket,                     HANDLE udp_handle,#else                     int udp_socket,#endif                     unsigned long sequence_number,                     TcpServer& server,                     TcpConnectionListener& listener): TcpConnection(far_address,                near_address,#if defined(WIN32)                actual_port,                udp_socket,                udp_handle,#else                udp_socket,#endif                sequence_number,                server,                listener){}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -