
//#include "pch.h" #include#include #include #include #include #include using namespace std; #pragma comment(lib,"ws2_32.lib") using namespace std; void initialization(); int main() { //定义长度变量 int send_len = 0; int recv_len = 0; //定义发送缓冲区和接受缓冲区 char send_buf[100]; char recv_buf[100]; //定义服务端套接字,接受请求套接字 SOCKET s_server; //服务端地址客户端地址 SOCKADDR_IN server_addr; initialization(); //填充服务端信息 server_addr.sin_family = AF_INET; server_addr.sin_addr.S_un.S_addr = inet_addr("192.168.0.5"); server_addr.sin_port = htons(8080);//根据自己的端口改变 //创建套接字 s_server = socket(AF_INET, SOCK_STREAM, 0); if (connect(s_server, (SOCKADDR *)&server_addr, sizeof(SOCKADDR)) == SOCKET_ERROR) { cout << "服务器连接失败!" << endl; WSACleanup(); } else { cout << "服务器连接成功!" << endl; } //发送,接收数据 while (1) { cout << "请输入发送信息:"; //读json文件// //std::ifstream t("text.json"); //std::stringstream buffer; //buffer << t.rdbuf(); //std::string contents(buffer.str()); //int len = contents.length(); //std::cout << len << std::endl; //std::string base; //base.assign((char*)&len, sizeof(int));//memcpy //base += contents; /// //传byte std::string contents1; std::string contents2; std::string contents3; contents1.assign(50, 'c'); contents2.assign(150, 'c'); contents3.assign(550,'c'); int len1 = contents1.length(); int len2 = contents2.length(); int len3 = contents3.length(); std::string base0; base0.assign((char*)&len1, sizeof(int));//memcpy base0 += contents1; base0.append((char*)&len2, sizeof(int));//memcpy base0 += contents2; base0.append((char*)&len3, sizeof(int));//memcpy base0 += contents3; std::cout << base0.length() << std::endl; send_len = send(s_server, (const char*)base0.c_str(), base0.length(), 0); if (send_len < 0) { cout << "发送失败!" << endl; break; } recv_len = recv(s_server, recv_buf, 100, 0); if (recv_len < 0) { cout << "接受失败!" << endl; break; } else { cout << "服务端信息:" << recv_buf << endl; } } //关闭套接字 closesocket(s_server); //释放DLL资源 WSACleanup(); return 0; } void initialization() { //初始化套接字库 WORD w_req = MAKEWORD(2, 2);//版本号 WSADATA wsadata; int err; err = WSAStartup(w_req, &wsadata); if (err != 0) { cout << "初始化套接字库失败!" << endl; } else { cout << "初始化套接字库成功!" << endl; } //检测版本号 if (LOBYTE(wsadata.wVersion) != 2 || HIBYTE(wsadata.wHighVersion) != 2) { cout << "套接字库版本号不符!" << endl; WSACleanup(); } else { cout << "套接字库版本正确!" << endl; } //填充服务端地址信息 }```
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)