char CMDData[100] = { 0 }; char CNTData[100] = { 0 }; void initialization(); void InitFinsData() { CNTData[0] = 0x46; CNTData[1] = 0x49; CNTData[2] = 0x4E; CNTData[3] = 0x53; CNTData[4] = 0x00; CNTData[5] = 0x00; CNTData[6] = 0x00; CNTData[7] = 0x0C; CNTData[8] = 0x00; CNTData[9] = 0x00; CNTData[10] = 0x00; CNTData[11] = 0x00; CNTData[12] = 0x00; CNTData[13] = 0x00; CNTData[14] = 0x00; CNTData[15] = 0x00; CNTData[16] = 0x00; CNTData[17] = 0x00; CNTData[18] = 0x00; CNTData[19] = 0x00; CMDData[0] = 0x46; CMDData[1] = 0x49; CMDData[2] = 0x4E; CMDData[3] = 0x53; CMDData[4] = 0x00; CMDData[5] = 0x00; CMDData[6] = 0x00; CMDData[7] = 0x1E; CMDData[8] = 0x00; CMDData[9] = 0x00; CMDData[10] = 0x00; CMDData[11] = 0x02; CMDData[12] = 0x00; CMDData[13] = 0x00; CMDData[14] = 0x00; CMDData[15] = 0x00; CMDData[16] = 0x80; CMDData[17] = 0x00; CMDData[18] = 0x02; CMDData[19] = 0x00; CMDData[20] = 0x01; CMDData[21] = 0x00; CMDData[22] = 0x00; CMDData[23] = 0xEF; CMDData[24] = 0x00; CMDData[25] = 0x05; CMDData[26] = 0x01; CMDData[27] = 0x02; CMDData[28] = 0x82; CMDData[29] = 0x00; CMDData[30] = 0x01; CMDData[31] = 0x00; CMDData[32] = 0x00; CMDData[33] = 0x02; CMDData[34] = 0xAA; CMDData[35] = 0xAA; CMDData[36] = 0xBB; CMDData[37] = 0xBB; } int main() { InitFinsData(); //定义长度变量 int send_len = 0; int recv_len = 0; //定义发送缓冲区和接受缓冲区 char send_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.250.1"); server_addr.sin_port = htons(9600); //创建套接字 s_server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (connect(s_server, (struct sockaddr*) & server_addr, sizeof(SOCKADDR)) == SOCKET_ERROR) { cout << "服务器连接失败!" << endl; WSACleanup(); } else { cout << "服务器连接成功!" << endl; } UCHAR recv_buf[100] = { 0 }; cout << "请输入发送信息:"; send_buf; send_len = send(s_server, CNTData, 20, 0); if (send_len < 0) { cout << "发送失败!" << endl; } recv_len = recv(s_server, (char*)recv_buf, 100, 0); if (recv_len < 0) { cout << "接受失败!" << endl; } else { cout << "服务端信息:" << recv_buf << endl; } UCHAR recv_buf2[100] = { 0 }; cout << "请输入发送信息:"; send_len = send(s_server, CMDData, 38, 0); if (send_len < 0) { cout << "发送失败!" << endl; } recv_len = recv(s_server, (char*)recv_buf2, 100, 0); if (recv_len < 0) { cout << "接受失败!" << endl; } else { cout << "服务端信息:" << recv_buf2 << endl; } closesocket(s_server); 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; } //填充服务端地址信息 }
注意:传参必须按照实际长度传递,多/少一个参数都不可以!!!!!!!!!!!!!!!!!!!!!!!!!!!