// SingleLink_2.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
//#include "LinkList.h"
//int _tmain(int argc, _TCHAR* argv[])
//{
// LinkList list;
// list.create(100);
// list.insertByIndex(5, 45.67);
// list.modsearch(2,123.9,1);
// list.print();
// double sd= list.search(5);
// return 0;
//}
#include <WinSock2.h>
#include <WS2tcpip.h>
#include <iostream>
using namespace std;
#define BUFFER_SIZE 1024
#pragma comment(lib, "ws2_32.lib")
int tcp_client_loopback()
{
WORD verRequest = MAKEWORD(1, 1); //最低版本支持
WSAData wData;
int err = WSAStartup(verRequest, &wData); //WSA初始化
if (err != 0)
{
printf("Initialization WSA Failed!");
WSACleanup();
ExitProcess(err);
}
printf("szDescription :%s \n", wData.szDescription);
// set server addr
SOCKADDR_IN addrSrv;
addrSrv.sin_family = AF_INET;
inet_pton(AF_INET, "127.0.0.1", &(addrSrv.sin_addr));
addrSrv.sin_port = htons(6000);
SOCKET sockClient = socket(AF_INET, SOCK_STREAM, 0);
connect(sockClient, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));
char sendbuf[BUFFER_SIZE] = "Hello I'm TCP client!",
recvbuf[BUFFER_SIZE];
//获取接入的客户端信息
int addrLen = sizeof(SOCKADDR);
unsigned char sendtemp[]={0,0,0,0,0,0,0x0A};
int len =7;
int count=0;
memcpy_s(sendbuf,BUFFER_SIZE,sendtemp,BUFFER_SIZE);
send(sockClient, sendbuf, len, 0);
int result;
while (true)
{
result = recv(sockClient, recvbuf, sizeof(recvbuf), 0);
if (result > 0)
{
recvbuf[result] = '\0';
printf("Recv:%s\n", recvbuf);
//send(sockClient, recvbuf, result, 0);
send(sockClient, sendbuf, len, 0);
count=0;
}
else if (result == 0)
{
count++;
printf("Server Closed\n");
if (count>30)
{
closesocket(sockClient);
//WSACleanup();
addrSrv.sin_family = AF_INET;
inet_pton(AF_INET, "127.0.0.1", &(addrSrv.sin_addr));
addrSrv.sin_port = htons(6000);
sockClient = socket(AF_INET, SOCK_STREAM, 0);
connect(sockClient, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));
count=0;
}
//break;
}
else
{
count++;
printf("recv Failed : %d\n", WSAGetLastError());
if (count>30)
{
closesocket(sockClient);
//WSACleanup();
addrSrv.sin_family = AF_INET;
inet_pton(AF_INET, "127.0.0.1", &(addrSrv.sin_addr));
addrSrv.sin_port = htons(6000);
sockClient = socket(AF_INET, SOCK_STREAM, 0);
connect(sockClient, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));
count=0;
}
}
}
closesocket(sockClient);
WSACleanup();
getchar();
ExitProcess(0);
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
LinkList list;
list.create(10);
list.insertByIndex(5, 45.67);
list.modsearch(2,123.9,1);
tcp_client_loopback();
double sd= list.search(5);
return 0;
}