本文整理汇总了C++中TCPSocket::disconnect方法的典型用法代码示例。如果您正苦于以下问题:C++ TCPSocket::disconnect方法的具体用法?C++ TCPSocket::disconnect怎么用?C++ TCPSocket::disconnect使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TCPSocket
的用法示例。
在下文中一共展示了TCPSocket::disconnect方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: doClientTask
//.........这里部分代码省略.........
if (!bBufInitialized) {
srand (1234);
for (int i = 0; i < sizeof (buf); i++) {
buf[i] = (char) rand();
}
bBufInitialized = true;
}
if (bUseMockets) {
StreamMocket mocket;
if (0 != (rc = mocket.connect (pszRemoteHost, usRemotePort))) {
fprintf (stderr, "doClientTask: failed to connect using mockets to remote host %s on port %d; rc = %d\n",
pszRemoteHost, usRemotePort, rc);
return -1;
}
mocket.registerPeerUnreachableWarningCallback (unreachablePeerCallback, NULL);
int iDataSize = 1024*1024;
int iBytesSent = 0;
int64 i64StartTime = getTimeInMilliseconds();
mocket.send (&iDataSize, sizeof (iDataSize));
while (iBytesSent < iDataSize) {
mocket.send (buf, sizeof (buf));
iBytesSent += sizeof (buf);
}
char chReply = 0;
mocket.receive (&chReply, 1);
if (chReply != '.') {
fprintf (stderr, "doClientTask: failed to receive . from remote host\n");
return -2;
}
int64 i64EndTime = getTimeInMilliseconds();
int iTime = (int) (getTimeInMilliseconds() - i64StartTime);
pStats->update ((double) (i64EndTime - i64StartTime));
// Save results to a file
FILE *file = fopen ("stats-client-streamMockets-cpp.txt", "a");
if (file == NULL) {
fprintf (stderr, "failed to append to file stats-mockets-cpp.txt\n");
return -3;
}
fprintf (file, "[%lu]\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n", (unsigned long) (getTimeInMilliseconds()/1000), iTime,
mocket.getStatistics()->getSentPacketCount(),
mocket.getStatistics()->getSentByteCount(),
mocket.getStatistics()->getReceivedPacketCount(),
mocket.getStatistics()->getReceivedByteCount(),
mocket.getStatistics()->getRetransmitCount(),
mocket.getStatistics()->getDuplicatedDiscardedPacketCount(),
mocket.getStatistics()->getNoRoomDiscardedPacketCount());
/*mocket.getStatistics()->getDiscardedPacketCounts()._iBelowWindow,
mocket.getStatistics()->getDiscardedPacketCounts()._iNoRoom,
mocket.getStatistics()->getDiscardedPacketCounts()._iOverlap,
mocket.getStatistics()->getTransmitterWaitCounts()._iPacketQueueFull,
mocket.getStatistics()->getTransmitterWaitCounts()._iRemoteWindowFull);*/
fclose (file);
mocket.close();
}
else {
TCPSocket socket;
if (0 != (rc = socket.connect (pszRemoteHost, usRemotePort))) {
fprintf (stderr, "doClientTask: failed to connect using sockets to remote host %s on port %d; rc = %d\n",
pszRemoteHost, usRemotePort, rc);
return -3;
}
int iDataSize = 1024*1024;
int iBytesSent = 0;
int64 i64StartTime = getTimeInMilliseconds();
socket.send (&iDataSize, sizeof (iDataSize));
while (iBytesSent < iDataSize) {
socket.send (buf, sizeof (buf));
iBytesSent += sizeof (buf);
}
char chReply = 0;
socket.receive (&chReply, 1);
if (chReply != '.') {
fprintf (stderr, "doClientTask: failed to receive . from remote host\n");
return -4;
}
int64 i64EndTime = getTimeInMilliseconds();
int iTime = (int) (getTimeInMilliseconds() - i64StartTime);
pStats->update ((double) (i64EndTime - i64StartTime));
// Save results to a file
FILE *socfile = fopen ("statsSM-client-sockets-cpp.txt", "a");
if (socfile == NULL) {
fprintf (stderr, "failed to append to file statsSM-mockets-cpp.txt\n");
return -3;
}
fprintf (socfile, "[%lu]\t%d\t\n", (unsigned long) (getTimeInMilliseconds()/1000), iTime);
fclose (socfile);
socket.disconnect();
}
return 0;
}
示例2: doClientTask
int doClientTask (const char *pszRemoteHost, unsigned short usRemotePort, bool bUseMockets)
{
int rc;
static char buf [1024];
static bool bBufInitialized;
if (!bBufInitialized) {
srand (1234);
for (int i = 0; i < sizeof (buf); i++) {
buf[i] = (char) rand();
}
bBufInitialized = true;
}
if (bUseMockets) {
Mocket *pm = new Mocket();
pm->registerPeerUnreachableWarningCallback (unreachablePeerCallback, NULL);
puts ("doClientTask: Using Mockets:Before connect");
if (0 != (rc = pm->connect (pszRemoteHost, usRemotePort))) {
fprintf (stderr, "doClientTask: failed to connect using Mockets to remote host %s on port %d; rc = %d\n",
pszRemoteHost, usRemotePort, rc);
puts ("doClientTask: Unable to connect");
delete pm;
return -11;
}
MessageSender rlsq = pm->getSender (true, true);
MessageSender ursq = pm->getSender (false, true);
// open stats file
FILE *file = fopen (CLIENT_STATS_FILENAME, "a");
if (file == NULL) {
fprintf (stderr, "failed to append to file %s\n", CLIENT_STATS_FILENAME);
return -12;
}
// mockets client code
for (int i = 0; continue_flag; ++i) {
// write sequence number in the first 4 bytes
*((uint32*)buf) = EndianHelper::htonl ((uint32)i);
if (0 == (i % PACKET_PER_SEC)) {
// send one reliable sequenced packet per second
rlsq.send (buf, sizeof (buf));
} else {
// send an unreliable sequenced packet
ursq.send (buf, sizeof (buf));
}
sleepForMilliseconds (20);
}
fclose (file);
pm->close();
delete pm;
} else {
TCPSocket socket;
puts ("doClientTask: Using Sockets:Before connect");
if (0 != (rc = socket.connect (pszRemoteHost, usRemotePort))) {
fprintf (stderr, "doClientTask: failed to connect using sockets to remote host %s on port %d; rc = %d\n",
pszRemoteHost, usRemotePort, rc);
puts ("doClientTask: Unable to connect");
return -11;
}
// open stats file
FILE *file = fopen (CLIENT_STATS_FILENAME, "a");
if (file == NULL) {
fprintf (stderr, "failed to append to file %s\n", CLIENT_STATS_FILENAME);
return -12;
}
// sockets client code
for (int i = 0; continue_flag; ++i) {
// write sequence number in the first 4 bytes
*((uint32*)buf) = EndianHelper::htonl ((uint32)i);
socket.send (buf, sizeof (buf));
sleepForMilliseconds (20);
}
fclose (file);
socket.disconnect();
}
return 0;
}