1. 程式人生 > >TCP客服端程式碼

TCP客服端程式碼

這兩天在看網路程式設計,寫了點程式,發給大家看看.

首先看看流程: 在這裡插入圖片描述

#include <Windows.h>
#include <iostream>
using namespace std;

#define SERVER_IP "192.168.0.168"		//本地UDP伺服器IP
#define SERVER_PORT 60008				//本地UDP伺服器埠

void main()
{
	//載入套接字  
	try
	{
		WORD sockVersion = MAKEWORD(2, 2);
		WSADATA wsaData;
		int result = WSAStartup(sockVersion, &wsaData);
		if (0 != result)
		{
			return ;
		}

		if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2)
		{
			WSACleanup();
			return ;
		}
	}
	catch (...)
	{
		return ;
	}

	char buff[1024];
	memset(buff, 0, sizeof(buff));

	//建立套接字  
	//SOCKET sockClient = socket(AF_INET, SOCK_STREAM, 0);
	SOCKET sockClient = NULL;
	try
	{
		sockClient = socket(AF_INET, SOCK_STREAM, 0);

		if (sockClient == INVALID_SOCKET)
		{
			return ;
		}
	}
	catch (...)
	{
		return ;
	}

	SOCKADDR_IN addrSrv;
	addrSrv.sin_family = AF_INET;
	addrSrv.sin_port = htons(60008);
	addrSrv.sin_addr.S_un.S_addr = inet_addr("192.168.0.168");


	if (SOCKET_ERROR == sockClient){
		printf("Socket() error:%d", WSAGetLastError());
		return;
	}

	//向伺服器發出連線請求  
	if (connect(sockClient, (struct  sockaddr*)&addrSrv, sizeof(addrSrv)) == INVALID_SOCKET){
		printf("Connect failed:%d", WSAGetLastError());
		return;
	}

	while (1)
	{
		//接收資料  
		recv(sockClient, buff, sizeof(buff), 0);
		printf("%s\n", buff);
		//傳送資料  
		char buff1[] = "hello, this is a Client....";
		send(sockClient, buff1, sizeof(buff1), 0);
	}

	//傳送資料  
	char buff1[] = "hello, this is a Client....";
	send(sockClient, buff1, sizeof(buff1), 0);

	//關閉套接字  
	closesocket(sockClient);
	WSACleanup();
}