#include<stdio.h>
#include<stdlib.h>
#include<WinSock2.h> //WindowsSocket编程头文件
#include<iostream>
#include<cstring>
#include <ws2tcpip.h>
#pragma comment(lib,"ws2_32.lib")//链接ws2_32.lib库文件到此项目中
using namespace std;
//================全局常量==================
//创建缓冲区
const int BUF_SIZE = 2048;
//================全局变量==================
SOCKET sockSer, sockCli;
SOCKADDR_IN addrSer, addrCli; //address
int naddr = sizeof(SOCKADDR_IN);
char sendbuf[BUF_SIZE];
char inputbuf[BUF_SIZE];
char recvbuf[BUF_SIZE];
//================函数声明==================
int main() {
//加载socket库
cout << "客户端启动" << endl;
WSADATA wsadata;
if (WSAStartup(MAKEWORD(2, 2), &wsadata) != 0)
{
//输出出错信息
cout << "载入socket库" << endl;
system("pause");
return 0;
}
//创建Soucket;
sockCli = socket(AF_INET, SOCK_STREAM, 0);
//描述协议族,INET属于ipv4;
//sock_stream创建套接字类型:tcp;
//0不指定协议,常用的协议有tcp、udp等
//初始化客户端地址包
/*addrCli.sin_addr.s_addr = inet_addr("127.0.0.1");
addrCli.sin_family = AF_INET;
addrCli.sin_port = htons(1111);*/
//初始化服务器地址
/*addrSer.sin_addr.s_addr = inet_addr("192.168.31.115");
addrSer.sin_family = AF_INET;
addrSer.sin_port = htons(1111);*/
inet_pton(AF_INET, "127.0.0.1", (void*)&addrSer.sin_addr);
addrSer.sin_family = AF_INET;
addrSer.sin_port = htons(8090);
while (true)
{
if (connect(sockCli, (SOCKADDR*)&addrSer, sizeof(addrSer)) != SOCKET_ERROR)
{
while (true)
{
//接收服务器信息
cout << "客户端连接成功" << endl;
recv(sockCli, recvbuf, sizeof(recvbuf), 0);
cout << "服务端发的信息:" << recvbuf << endl;
//发送给服务器信息
cout << "请输入要发送给服务器的信息:" << endl;
cin >> sendbuf;
send(sockCli, sendbuf, sizeof(sendbuf), 0);
cout << "发送成功" << endl;
}
}
else
{
//cout << "客户端连接失败" << endl;
}
}
closesocket(sockSer);
closesocket(sockCli);
return 0;
}
C++TCP/IP客户端
于 2024-04-24 21:33:05 首次发布