客户端:
1、头文件
(1)clientReceive.h
#pragma once
#ifndef _ser_listen_h_
#define _ser_listen_h_
void* clientReceive(void* arg);
#endif
(2)message.h
#pragma once
#ifndef _message_h_
#define _message_h_
#define PORT 8888
struct message
{
char message[32];
short int startData;
short int sizeData;
short int serverPort;
int serverIP;
short int clientPort;
int clientIP;
short int endData;
};
#endif
2、源文件
(1)tcpClient.cpp:
#include <winsock2.h>
#include <iostream>
#include <Ws2tcpip.h>
#include <pthread.h>
#pragma comment(lib,"pthreadVC2.lib")
#pragma comment(lib,"ws2_32.lib")
#include <windows.h>
#include <windows.h>
#pragma comment(lib,"ws2_32.lib")
#include <STDIO.H>
#include <string>
# include <stdlib.h>
#include"message.h"
#include"clientReceive.h"
//using namespace std;
int main(int argc, char* argv[])
{
pthread_t threadClientReceive;
//初始化套接字
WORD sockVersion = MAKEWORD(2, 2);
WSADATA data;
if (WSAStartup(sockVersion, &data) != 0)
{
return 0;
}
//创建客户端套接字
SOCKET clientReceived = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (clientReceived == INVALID_SOCKET)
{
printf("invalid socket !");
return 0;
}
//客户端绑定地址信息
struct sockaddr_in client;
client.sin_family = AF_INET; //地址簇,表示接收本机或其他机器传输
client.sin_port = htons(PORT); //16位TCP/UDP端口号
client.sin_addr.S_un.S_addr = inet_addr("127.0.1.1"); //设置ip地址,表示本机ip
if (bind(clientReceived, (struct sockaddr*)&client, sizeof(client)) < 0) //绑定本机结构体