Skip to content

Instantly share code, notes, and snippets.

@SangSama
Created March 25, 2020 15:51
Show Gist options
  • Save SangSama/87e0e45ca72cb77754c8daf013f19a49 to your computer and use it in GitHub Desktop.
Save SangSama/87e0e45ca72cb77754c8daf013f19a49 to your computer and use it in GitHub Desktop.
#include <iostream>
#include <WinSock2.h>
#include <WS2tcpip.h>
#pragma comment(lib, "ws2_32") // chi thị pragma để gắn hư viện
#define _WINSOCK_DEPRECATED_NO_WARNINGS
#include<string.h>
//lib get info computer
#include <windows.h>
#pragma comment(lib, "user32.lib")
#include <sstream> //convert to string
int main() {
//Get data computer
SYSTEM_INFO siSysInfo;
GetSystemInfo(&siSysInfo);
int OEMID = siSysInfo.dwOemId;
int numOfProcess = siSysInfo.dwNumberOfProcessors;
int pageSize = siSysInfo.dwPageSize;
int processType = siSysInfo.dwProcessorType;
long miniumAppAddr = siSysInfo.lpMinimumApplicationAddress;
long maximumAppAddr = siSysInfo.lpMaximumApplicationAddress;
int activeProcessMask = siSysInfo.dwActiveProcessorMask;
// khoi tao winsock
WSADATA wsa;
WSAStartup(MAKEWORD(2, 2), &wsa);
//khai bao socket
SOCKET client = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
printf("Nhap thong tin server (ip port): ");
string diaChiIP; cin >> diaChiIP;
int port; cin >> port;
printf("du lieu gui cho server: ");
string data;
data.append("OEM ID : "); data.append(to_string(OEMID));
data.append("Num Of Process"); data.append(to_string(numOfProcess));
data.append("Page Size"); data.append(to_string(pageSize));
data.append("Process Type"); data.append(to_string(processType));
data.append("Minium App Addr "); data.append(to_string(miniumAppAddr));
data.append("Maximum App Addr"); data.append(to_string(maximumAppAddr));
data.append("Active Process Mask"); data.append(to_string(activeProcessMask));
//khai bao dia chi server
SOCKADDR_IN addr;
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = inet_addr(diaChiIP);
addr.sin_port = htons(port);
//connect
int ret = connect(client, (SOCKADDR*)&addr, sizeof(addr));
if (ret == SOCKET_ERROR) {
ret = WSAGetLastError();
return 1;
}
// gat info computer
//send data
send(client, data, sizeof(data), 0);
closesocket(client);
WSACleanup();
}
#include <iostream>
#include <WinSock2.h>
#include <WS2tcpip.h>
#pragma comment(lib, "ws2_32") // chi thị pragma để gắn hư viện
#define _WINSOCK_DEPRECATED_NO_WARNINGS
#include<string.h>
int main() {
// khoi tao winsock
WSADATA wsa;
WSAStartup(MAKEWORD(2, 2), &wsa);
//khai bao socket
SOCKET listener = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
printf("Nhap thong tin server (port): ");
int port; cin >> port;
//khai bao dia chi server
SOCKADDR_IN addr;
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = htonl(INADDR_ANY); //bat ki
addr.sin_port = htons(port);
bind(listener, (SOCKADDR*)&addr, sizeof(addr)); // gan socket voi cau truc da chi
listen(listener, 5); // chuyen sang trang thai cho ket noi
SOCKET client = accept(listener, NULL, NULL);
char buf[2048];
int ret;
float f;
while (1) {
ret = recv(client, buf, sizeof(f), 0);
if (ret <= 0) {
printf("recv() failed\n");
return 1;
}
printf("%s\n", buf);
}
closesocket(client);
closesocket(listener);
WSACleanup();
}
#include <iostream>
#include <WinSock2.h>
#include <WS2tcpip.h>
#pragma comment(lib, "ws2_32") // chi thị pragma để gắn hư viện
#define _WINSOCK_DEPRECATED_NO_WARNINGS
#include<string.h>
int main() {
// khoi tao winsock
WSADATA wsa;
WSAStartup(MAKEWORD(2, 2), &wsa);
//khai bao socket
SOCKET client = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
printf("Nhap thong tin server (ip port): ");
string diaChiIP; cin >> diaChiIP;
int port; cin >> port;
printf("du lieu gui cho server: ");
string data; cin >> data;
//khai bao dia chi server
SOCKADDR_IN addr;
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = inet_addr(diaChiIP);
addr.sin_port = htons(port);
//connect
int ret = connect(client, (SOCKADDR*)&addr, sizeof(addr));
if (ret == SOCKET_ERROR) {
ret = WSAGetLastError();
return 1;
}
//send data
send(client, data, sizeof(data), 0);
closesocket(client);
WSACleanup();
}
#include <iostream>
#include <WinSock2.h>
#include <WS2tcpip.h>
#pragma comment(lib, "ws2_32") // chi thị pragma để gắn hư viện
#define _WINSOCK_DEPRECATED_NO_WARNINGS
#include<string.h>
int main() {
// khoi tao winsock
WSADATA wsa;
WSAStartup(MAKEWORD(2, 2), &wsa);
//khai bao socket
SOCKET listener = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
printf("Nhap thong tin server (port): ");
int port; cin >> port;
printf("source file gui:");
string sendFile; cin >> sendFile;
printf("source file nhan: ");
string recvFile; cin >> recvFile;
//khai bao dia chi server
SOCKADDR_IN addr;
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = htonl(INADDR_ANY); //bat ki
addr.sin_port = htons(port);
bind(listener, (SOCKADDR*)&addr, sizeof(addr)); // gan socket voi cau truc da chi
listen(listener, 5); // chuyen sang trang thai cho ket noi
SOCKET client = accept(listener, NULL, NULL);
//doc file va gui cho client
char bufSend[2048];
fread(bufSend, 1, sizeof(bufSend), sendFile);
send(client, bufSend, strlen(bufSend), 0);
//nhan data tu client va ghi vao file
char bufRecv[2048];
int ret, sum;
FILE* fWrite = fopen(recvFile, "wb");
while (1) {
ret = recv(client, bufRecv, sizeof(bufRecv), 0);
if (ret <= 0) break;
fwrite(bufRecv, 1, ret, fWrite);
sum += ret;
}
printf("Finished");
fclose(f);
closesocket(client);
closesocket(listener);
WSACleanup();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment