Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // FileClient.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- #include "stdio.h"
- #include "conio.h"
- #include "winsock2.h"
- #include "ws2tcpip.h"
- SOCKET s;
- SOCKADDR_IN sAddr;
- DWORD WINAPI ReceiverThread(LPVOID Param) {
- char buf[1024];
- int len;
- while (true) {
- len = recv(s, buf, 1024, 0);
- if (len > 0) {
- buf[len] = 0;
- int size = atoi(buf);
- if (size == 0) {
- printf("%s", buf);
- }
- else {
- FILE *fw = fopen("b.jpg", "wb");
- int checksize = 0;
- char* buffer;
- buffer = (char*)malloc(size + 1);
- while (checksize < size) {
- int Received = recv(s, buffer, size, 0);
- int Written = fwrite(buffer, sizeof(char), Received, fw);
- checksize += Written;
- for (int i = 0; i < Written; i++) {
- if (buffer[i] == '\n') {
- checksize += 1;
- }
- }
- }
- fclose(fw);
- free(buffer);
- printf("complete");
- }
- }
- }
- return 0;
- }
- int main()
- {
- WSADATA wsadata;
- int ret = WSAStartup(MAKEWORD(2, 2), &wsadata);
- s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
- sAddr.sin_family = AF_INET;
- sAddr.sin_port = htons(10008);
- sAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
- connect(s, (sockaddr*)&sAddr, sizeof(sAddr));
- char buf[1024];
- CreateThread(0, 0, ReceiverThread, 0, 0, 0);
- while (true) {
- fgets(buf, 1024, stdin);
- send(s, buf, strlen(buf), 0);
- }
- closesocket(s);
- WSACleanup();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement