当前位置: 首页>>代码示例>>C++>>正文


C++ ServerSocket::getPort方法代码示例

本文整理汇总了C++中ServerSocket::getPort方法的典型用法代码示例。如果您正苦于以下问题:C++ ServerSocket::getPort方法的具体用法?C++ ServerSocket::getPort怎么用?C++ ServerSocket::getPort使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ServerSocket的用法示例。


在下文中一共展示了ServerSocket::getPort方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: wxS

void
View::onExtractClick(wxCommandEvent &event) {
	if (fileInput->GetValue().Len() == 0) {
		wxMessageBox(wxS("You didn't specify a file."), wxS("Error"),
			     wxOK | wxICON_ERROR, this);
		return;
	} else if (!wxFileExists(fileInput->GetValue())) {
		wxMessageBox(wxS("The specified file does not exist."), wxS("Error"),
			     wxOK | wxICON_ERROR, this);
		return;
	}

	fileInput->Enable(false);
	browseButton->Enable(false);
	extractButton->Enable(false);


	// Start a server socket
	ServerSocket *server;
	try {
		server = ServerSocket::create(wxT("127.0.0.1"), 0);
	} catch (SocketException &e) {
		wxString message;
		message.Printf(wxT("Unable to start a server socket: %s"),
			       e.getMessage().c_str());
		wxMessageBox(message, wxS("Error"), wxOK | wxICON_ERROR, this);
		Close();
		return;
	}

	// Start the disassembler.
	wxString command;
	long pid;

	command = wxString::Format(wxT("\"%s\" -d -M intel --remote=%d \"%s\""),
		findObjdump().c_str(),
		server->getPort(),
		fileInput->GetValue().c_str());
	pid = wxExecute(command, wxEXEC_ASYNC, NULL);
	if (pid == 0) {
		delete server;
		wxMessageBox(wxS("Unable to launch the disassembler."), wxS("Error"),
			     wxOK | wxICON_ERROR, this);
		Close();
		return;
	}

	thread = new WorkerThread(pid, server);
	server->unref();
	thread->Create();
	thread->Run();
	timer.Start(100);
}
开发者ID:puring0815,项目名称:OpenKore,代码行数:53,代码来源:view.cpp

示例2: readAtMost

int64_t readAtMost(ServerSocket &s, char *buf, int64_t max, int64_t atMost) {
  const int64_t target = atMost < max ? atMost : max;
  VLOG(3) << "readAtMost target " << target;
  // because we want to process data as soon as it arrives, tryFull option for
  // read is false
  int64_t n = s.read(buf, target, false);
  if (n < 0) {
    PLOG(ERROR) << "Read error on " << s.getPort() << " with target " << target;
    return n;
  }
  if (n == 0) {
    LOG(WARNING) << "Eof on " << s.getFd();
    return n;
  }
  VLOG(3) << "readAtMost " << n << " / " << atMost << " from " << s.getFd();
  return n;
}
开发者ID:hexq,项目名称:wdt,代码行数:17,代码来源:Receiver.cpp

示例3: init

WdtTransferRequest Receiver::init() {
  vector<ServerSocket> successfulSockets;
  for (size_t i = 0; i < threadServerSockets_.size(); i++) {
    ServerSocket socket = std::move(threadServerSockets_[i]);
    int max_retries = WdtOptions::get().max_retries;
    for (int retries = 0; retries < max_retries; retries++) {
      if (socket.listen() == OK) {
        break;
      }
    }
    if (socket.listen() == OK) {
      successfulSockets.push_back(std::move(socket));
    } else {
      LOG(ERROR) << "Couldn't listen on port " << socket.getPort();
    }
  }
  LOG(INFO) << "Registered " << successfulSockets.size() << " sockets";
  ErrorCode code = OK;
  if (threadServerSockets_.size() != successfulSockets.size()) {
    code = FEWER_PORTS;
    if (successfulSockets.size() == 0) {
      code = ERROR;
    }
  }
  threadServerSockets_ = std::move(successfulSockets);
  WdtTransferRequest transferRequest(getPorts());
  transferRequest.protocolVersion = protocolVersion_;
  transferRequest.transferId = transferId_;
  LOG(INFO) << "Transfer id " << transferRequest.transferId;
  if (transferRequest.hostName.empty()) {
    char hostName[1024];
    int ret = gethostname(hostName, sizeof(hostName));
    if (ret == 0) {
      transferRequest.hostName.assign(hostName);
    } else {
      PLOG(ERROR) << "Couldn't find the host name";
      code = ERROR;
    }
  }
  transferRequest.directory = destDir_;
  transferRequest.errorCode = code;
  return transferRequest;
}
开发者ID:hexq,项目名称:wdt,代码行数:43,代码来源:Receiver.cpp

示例4: receiveOne

void Receiver::receiveOne(int threadIndex, ServerSocket &socket,
                          int64_t bufferSize, TransferStats &threadStats) {
  INIT_PERF_STAT_REPORT
  auto guard = folly::makeGuard([&] {
    perfReports_[threadIndex] = *perfStatReport;  // copy when done
    std::unique_lock<std::mutex> lock(mutex_);
    numActiveThreads_--;
    if (numActiveThreads_ == 0) {
      LOG(WARNING) << "Last thread finished. Duration of the transfer "
                   << durationSeconds(Clock::now() - startTime_);
      transferFinished_ = true;
    }
  });
  ThreadData data(threadIndex, socket, threadStats, protocolVersion_,
                  bufferSize);
  if (!data.getBuf()) {
    LOG(ERROR) << "error allocating " << bufferSize;
    threadStats.setErrorCode(MEMORY_ALLOCATION_ERROR);
    return;
  }
  ReceiverState state = LISTEN;
  while (true) {
    ErrorCode abortCode = getCurAbortCode();
    if (abortCode != OK) {
      LOG(ERROR) << "Transfer aborted " << socket.getPort() << " "
                 << errorCodeToStr(abortCode);
      threadStats.setErrorCode(ABORT);
      incrFailedThreadCountAndCheckForSessionEnd(data);
      break;
    }
    if (state == FAILED) {
      return;
    }
    if (state == END) {
      if (isJoinable_) {
        return;
      }
      state = ACCEPT_FIRST_CONNECTION;
    }
    state = (this->*stateMap_[state])(data);
  }
}
开发者ID:hexq,项目名称:wdt,代码行数:42,代码来源:Receiver.cpp


注:本文中的ServerSocket::getPort方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。