- -学习中还是新手c++ 貌似洪水.....但是实际测试中仅仅影响了同事看网络视频的速度![](https://www.cnblogs.com/Emoticons/baimantou/134950908.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
// ToPings.cpp : 定义控制台应用程序的入口点。
//
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
#include "stdafx.h"
#include "ToPings.h"
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
// 唯一的应用程序对象
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
CWinApp theApp;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
using namespace std;
#include <process.h>
#include <stdio.h>
#include <stdlib.h>
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
void Child( void* pParams )
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
char *data = (char *) pParams;
char s1[90]="ping ";
strcat(s1,data);
strcat(s1 ," -t -l 65500");
// printf(s1);
system(s1);
//_endthread();
}
int main(int argc, char *argv[])
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
//printf(argv[1]);
for(int i=0;i<100;i++)
_beginthread( Child, 0, (void *)argv[1]);
printf("Parent later!\n");
return 0;
}
- -我看到的tcp c++ 测试过了还不错- -想到用 c#调用这个就好用多了
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
client.cpp
#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
void main()
{
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// 初始化 Winsock.
WSADATA wsaData;
int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );
if ( iResult != NO_ERROR )
printf("Error at WSAStartup()\n");
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// 建立socket socket.
SOCKET client;
client = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
if ( client == INVALID_SOCKET )
{
printf( "Error at socket(): %ld\n", WSAGetLastError() );
WSACleanup();
return;
}
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// 连接到服务器.
sockaddr_in clientService;
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
clientService.sin_family = AF_INET;
clientService.sin_addr.s_addr = inet_addr( "127.0.0.1" );
clientService.sin_port = htons( 27015 );
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
if ( connect( client, (SOCKADDR*) &clientService, sizeof(clientService) ) == SOCKET_ERROR)
{
printf( "Failed to connect.\n" );
WSACleanup();
return;
}
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// 发送并接收数据.
int bytesSent;
int bytesRecv = SOCKET_ERROR;
char sendbuf[32] = "Client: Sending data.";
char recvbuf[32] = "";
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
bytesSent = send( client, sendbuf, strlen(sendbuf), 0 );
printf( "Bytes Sent: %ld\n", bytesSent );
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
while( bytesRecv == SOCKET_ERROR )
{
bytesRecv = recv( client, recvbuf, 32, 0 );
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
if ( bytesRecv == 0 || bytesRecv == WSAECONNRESET )
{
printf( "Connection Closed.\n");
break;
}
if (bytesRecv < 0)
return;
printf( "Bytes Recv: %ld\n", bytesRecv );
}
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
return;
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
server.cpp
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
void main()
{
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// 初始化
WSADATA wsaData;
int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );
if ( iResult != NO_ERROR )
printf("Error at WSAStartup()\n");
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// 建立socket
SOCKET server;
server = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
if ( server == INVALID_SOCKET )
{
printf( "Error at socket(): %ld\n", WSAGetLastError() );
WSACleanup();
return;
}
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// 绑定socket
sockaddr_in service;
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
service.sin_family = AF_INET;
service.sin_addr.s_addr = inet_addr( "127.0.0.1" );
service.sin_port = htons( 27015 );
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
if ( bind( server, (SOCKADDR*) &service, sizeof(service) ) == SOCKET_ERROR )
{
printf( "bind() failed.\n" );
closesocket(server);
return;
}
// 监听 socket
if ( listen( server, 1 ) == SOCKET_ERROR )
printf( "Error listening on socket.\n");
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// 接受连接
SOCKET AcceptSocket;
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
printf( "Waiting for a client to connect
\n" );
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
while (1)
{
AcceptSocket = SOCKET_ERROR;
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
while ( AcceptSocket == SOCKET_ERROR )
{
AcceptSocket = accept( server, NULL, NULL );
}
printf( "Client Connected.\n");
server = AcceptSocket;
break;
}
// 发送接受数据
int bytesSent;
int bytesRecv = SOCKET_ERROR;
char sendbuf[32] = "Server: Sending Data.";
char recvbuf[32] = "";
bytesRecv = recv( server, recvbuf, 32, 0 );
printf( "Bytes Recv: %ld\n", bytesRecv );
bytesSent = send( server, sendbuf, strlen(sendbuf), 0 );
printf( "Bytes Sent: %ld\n", bytesSent );
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
return;
}