Visual C++でsocket通信
・クライアントプログラム
#include <cstdio>
#include <cstring>
#include <winsock2.h>
bool query(const char* message) {
int main(int argc, char* argv[]) {
#include <cstring>
#include <winsock2.h>
bool query(const char* message) {
char host[] = "192.168.0.1"; int port = 12345;
WSADATA data; WSAStartup(MAKEWORD(2, 0), &data);
struct sockaddr_in dst; memset(&dst, 0, sizeof(dst)); dst.sin_addr.s_addr = inet_addr(host); dst.sin_port = htons(port); dst.sin_family = AF_INET;
SOCKET clientsock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(clientsock < 0) { fprintf(stderr, "socket: failed"); return false; }
if(connect(clientsock, (struct sockaddr*)&dst, sizeof(dst)) < 0) { fprintf(stderr, "%d@%s: cannot connect", port, host); return false; } fprintf(stderr, "%d@%s: connected", port, host);
send(clientsock, message, strlen(message), 0);
char recvbuf[1024]; recv(clientsock, recvbuf, 1024, 0);
closesocket(clientsock); WSACleanup();
return true;}
int main(int argc, char* argv[]) {
if(argc < 2) { fprintf(stderr, "usage: %s message", argv[0]); return 1; }
if(query(argv[1])) { printf("Authentication was successful."); } else { printf("Authentication failed."); }
return 0;}
- 最終更新:2017-05-13 22:24:14