| | |
| | | |
| | | void* SocketManager::callbackContext; |
| | | |
| | | string SocketManager::ADDR; |
| | | |
| | | SocketManager::SocketManager(ActionCallback callback, void* context) { |
| | | |
| | | init(callback,context); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | void SocketManager::init(ActionCallback callback, void* contex) { |
| | | |
| | | actionCallback = callback; |
| | | callbackContext = contex; |
| | | clientaddr.sin_family = AF_INET; |
| | | clientaddr.sin_port = htons(PORT); |
| | | clientaddr.sin_addr.S_un.S_addr = inet_addr(ADDR); |
| | | clientaddr.sin_addr.S_un.S_addr = inet_addr(ADDR.c_str()); |
| | | //建立9个连接,前8个为数据传输通道,后一个为命令传输通道 |
| | | sockClients.clear(); |
| | | for (int i = 0;i < CHANNEL_NUM;i++) |
| | |
| | | } |
| | | |
| | | |
| | | BOOL SocketManager::sendMsg(const char* msg) { |
| | | string SocketManager::sendMsg(const char* msg) { |
| | | WSADATA wsd; |
| | | WSAStartup(MAKEWORD(2, 2), &wsd); |
| | | SOCKET m_SockClient; |
| | | m_SockClient = socket(AF_INET, SOCK_STREAM, 0); |
| | | sockaddr_in clientaddr; |
| | | clientaddr.sin_family = AF_INET; |
| | | clientaddr.sin_port = htons(9001); |
| | | clientaddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1"); |
| | | clientaddr.sin_port = htons(PORT); |
| | | clientaddr.sin_addr.S_un.S_addr = inet_addr(ADDR.c_str()); |
| | | |
| | | connect(m_SockClient, (sockaddr*)&clientaddr, sizeof(clientaddr)); |
| | | char buffer[64]; |
| | | char buffer[1024]; |
| | | |
| | | int result = send(m_SockClient, msg, strlen(msg), 0); |
| | | if (result < 0) { |
| | | throw string("发送失败"); |
| | | } |
| | | |
| | | int num = recv(m_SockClient, buffer, 64, 0); |
| | | int num = recv(m_SockClient, buffer, 1024, 0); |
| | | closesocket(m_SockClient); |
| | | if (num < 0) { |
| | | throw string("未接收到信息"); |
| | | } |
| | | return 1; |
| | | return string(buffer); |
| | | } |